aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/fpu_modes.h
diff options
context:
space:
mode:
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 */