cppgc: Use static_assert to force semi colon after macro

Bug: chromium:1056170
Change-Id: I1b6787ecea6ad58173a0bcc8e8d0862a5b19d299
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199342
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67784}
This commit is contained in:
Michael Lippautz 2020-05-13 23:09:27 +02:00 committed by Commit Bot
parent bf251848b5
commit 81290c4851
4 changed files with 5 additions and 10 deletions

View File

@ -8,7 +8,6 @@
#include <type_traits>
#include "cppgc/internal/api-constants.h"
#include "cppgc/macros.h"
#include "cppgc/platform.h"
#include "cppgc/trace-trait.h"
#include "cppgc/type-traits.h"
@ -161,7 +160,7 @@ class GarbageCollectedMixin : public internal::GarbageCollectedBase {
} \
\
private: \
friend class internal::__thisIsHereToForceASemicolonAfterThisMacro
static_assert(true, "Force semicolon.")
/**
* Merge two or more Mixins into one.
@ -185,7 +184,7 @@ class GarbageCollectedMixin : public internal::GarbageCollectedBase {
} \
\
private: \
friend class internal::__thisIsHereToForceASemicolonAfterThisMacro
static_assert(true, "Force semicolon.")
} // namespace cppgc

View File

@ -7,10 +7,6 @@
namespace cppgc {
namespace internal {
class __thisIsHereToForceASemicolonAfterThisMacro {};
} // namespace internal
// Use if the object is only stack allocated.
#define CPPGC_STACK_ALLOCATED() \
public: \
@ -19,7 +15,7 @@ class __thisIsHereToForceASemicolonAfterThisMacro {};
private: \
void* operator new(size_t) = delete; \
void* operator new(size_t, void*) = delete; \
friend class internal::__thisIsHereToForceASemicolonAfterThisMacro
static_assert(true, "Force semicolon.")
} // namespace cppgc

View File

@ -9,7 +9,6 @@
#include "cppgc/internal/compiler-specific.h"
#include "cppgc/internal/prefinalizer-handler.h"
#include "cppgc/liveness-broker.h"
#include "cppgc/macros.h"
namespace cppgc {
@ -47,7 +46,7 @@ class PrefinalizerRegistration final {
private: \
CPPGC_NO_UNIQUE_ADDRESS internal::PrefinalizerRegistration<Class> \
prefinalizer_dummy_{this}; \
friend class internal::__thisIsHereToForceASemicolonAfterThisMacro
static_assert(true, "Force semicolon.")
} // namespace cppgc

View File

@ -12,6 +12,7 @@
#include "include/cppgc/internal/gc-info.h"
#include "include/cppgc/internal/persistent-node.h"
#include "include/cppgc/liveness-broker.h"
#include "include/cppgc/macros.h"
#include "src/base/page-allocator.h"
#include "src/heap/cppgc/heap-object-header.h"
#include "src/heap/cppgc/marker.h"