[iwyu] Fix failing header include checks for gcc build

Bug: v8:9290, v8:7490, v8:9183
Change-Id: Iac5cdf0d96c1fdbb7e6461ea435c1ff32c6a701e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627543
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61821}
This commit is contained in:
Igor Sheludko 2019-05-24 11:25:47 +02:00 committed by Commit Bot
parent 8306b26a40
commit cca5e7ff9c
3 changed files with 11 additions and 8 deletions

View File

@ -111,9 +111,14 @@ class Handle final : public HandleBase {
T object_;
};
V8_INLINE explicit Handle(Address* location = nullptr)
: HandleBase(location) {
// Type check:
V8_INLINE explicit Handle() : HandleBase(nullptr) {
// Skip static type check in order to allow Handle<XXX>::null() as default
// parameter values in non-inl header files without requiring full
// definition of type XXX.
}
V8_INLINE explicit Handle(Address* location) : HandleBase(location) {
// This static type check also fails for forward class declarations.
static_assert(std::is_convertible<T*, Object*>::value,
"static type violation");
// TODO(jkummerow): Runtime type check here as a SLOW_DCHECK?

View File

@ -12,14 +12,11 @@
namespace v8 {
namespace internal {
template <typename T>
MaybeHandle<T>::MaybeHandle(T object, Isolate* isolate)
: MaybeHandle(handle(object, isolate)) {}
MaybeObjectHandle::MaybeObjectHandle()
: reference_type_(HeapObjectReferenceType::STRONG),
handle_(Handle<Object>::null()) {}
MaybeObjectHandle::MaybeObjectHandle(MaybeObject object, Isolate* isolate) {
HeapObject heap_object;
DCHECK(!object->IsCleared());

View File

@ -81,7 +81,8 @@ class MaybeHandle final {
// while the MaybeObjectHandle is alive.
class MaybeObjectHandle {
public:
inline MaybeObjectHandle();
inline MaybeObjectHandle()
: reference_type_(HeapObjectReferenceType::STRONG) {}
inline MaybeObjectHandle(MaybeObject object, Isolate* isolate);
inline MaybeObjectHandle(Object object, Isolate* isolate);
inline explicit MaybeObjectHandle(Handle<Object> object);