aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/fpu_modes.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2019-04-26 07:11:09 -0700
committerChris Robinson <[email protected]>2019-04-26 07:11:09 -0700
commit348e01dc4bc16ac4543d54b722fb46dbdebcb1e3 (patch)
tree1e297d600ddeb493ebbfe6bc541158c3c9d84023 /Alc/fpu_modes.h
parent725ceb128ed4cb48a039d2f32ae73f8c8dccabef (diff)
Work around a 32-bit GCC compiler bug
Diffstat (limited to 'Alc/fpu_modes.h')
-rw-r--r--Alc/fpu_modes.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/Alc/fpu_modes.h b/Alc/fpu_modes.h
index 73e75965..5465e9cf 100644
--- a/Alc/fpu_modes.h
+++ b/Alc/fpu_modes.h
@@ -8,13 +8,18 @@ class FPUCtl {
bool in_mode{};
public:
- FPUCtl() noexcept;
- ~FPUCtl() { leave(); }
+ FPUCtl();
+ /* HACK: 32-bit targets for GCC seem to have a problem here with certain
+ * noexcept methods (which destructors are) causing an internal compiler
+ * error. No idea why it's these methods specifically, but this is needed
+ * to get it to compile.
+ */
+ ~FPUCtl() noexcept(false) { leave(); }
FPUCtl(const FPUCtl&) = delete;
FPUCtl& operator=(const FPUCtl&) = delete;
- void leave() noexcept;
+ void leave();
};
#endif /* FPU_MODES_H */