diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2019-11-18 12:28:54 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-18 12:28:54 -0800 |
commit | 17f0468c1656aa91d7cc5e3174a797312a9364c3 (patch) | |
tree | 0c765c27541a3d0eed0e10b2afc49613e5c719ef /src/base | |
parent | 6fe7877d82721e453d5d928a8fe9dbad2099dac1 (diff) |
Use -Wimplicit-fallthrough (#3464)
This commit enables compiler warnings for implicit fallthroughs in
switch statements that are not explicitly marked as such. The commit
introduces a new macro `CVC4_FALLTHROUGH` that can be used to indicate
that a fallthrough is intentional. The commit fixes existing warnings
and a bug in the arithmetic rewriter for `abs` (the bug likely couldn't
be triggered easily because we rewrite `abs` to an `ite` while expanding
definitions).
To have the new macro also available in the parser, the commit changes
`src/base/check.h` to be visible to the parser (it includes
`cvc4_private_library.h` now instead of `cvc4_private.h`).
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/check.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/base/check.h b/src/base/check.h index 915f6e4cb..93ad71100 100644 --- a/src/base/check.h +++ b/src/base/check.h @@ -29,7 +29,7 @@ ** AlwaysAssert may be added. **/ -#include "cvc4_private.h" +#include "cvc4_private_library.h" #ifndef CVC4__CHECK_H #define CVC4__CHECK_H @@ -65,6 +65,15 @@ #define CVC4_PREDICT_TRUE(x) x #endif +#ifdef __has_cpp_attribute +#if __has_cpp_attribute(fallthrough) +#define CVC4_FALLTHROUGH [[fallthrough]] +#endif // __has_cpp_attribute(fallthrough) +#endif // __has_cpp_attribute +#ifndef CVC4_FALLTHROUGH +#define CVC4_FALLTHROUGH +#endif + namespace CVC4 { // Implementation notes: |