| // Copyright 2018 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef V8_BASE_V8_FALLTHROUGH_H_ |
| #define V8_BASE_V8_FALLTHROUGH_H_ |
| |
| // When clang suggests inserting [[clang::fallthrough]], it first checks if |
| // it knows of a macro expanding to it, and if so suggests inserting the |
| // macro. This means that this macro must be used only in code internal |
| // to v8, so that v8's user code doesn't end up getting suggestions |
| // for V8_FALLTHROUGH instead of the user-specific fallthrough macro. |
| // So do not include this header in any of v8's public headers -- only |
| // use it in src/, not in include/. |
| #if defined(__clang__) |
| #define V8_FALLTHROUGH [[clang::fallthrough]] // NOLINT(whitespace/braces) |
| #else |
| #define V8_FALLTHROUGH |
| #endif |
| |
| #endif // V8_BASE_V8_FALLTHROUGH_H_ |