|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
From 4e380a0e486c080f36adad5b035787d64cfedb3e Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
From: Stephan Hartmann <stha09@googlemail.com>
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
Date: Sat, 27 Jun 2020 13:59:20 +0000
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
Subject: [PATCH] GCC: fix mixing __attribute__ with C++ attributes
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
GCC does not support mixing __attribute__ with [[...]] attributes.
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
On the other hand [[clang::lto_visibility_public]] isn't supported
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
by GCC and only emits a warning. Therefore define Clang specific
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
attribute and leave it empty for GCC.
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
---
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
base/compiler_specific.h | 6 ++++++
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
third_party/blink/renderer/core/frame/frame_view.h | 3 ++-
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
2 files changed, 8 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
diff --git a/base/compiler_specific.h b/base/compiler_specific.h
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
index c8a7649..8fd2252 100644
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
--- a/base/compiler_specific.h
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+++ b/base/compiler_specific.h
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
@@ -292,4 +292,10 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#endif // defined(__clang_analyzer__)
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+#if defined(__clang__)
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+#define LTO_VISIBILITY_PUBLIC [[clang::lto_visibility_public]]
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+#else
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+#define LTO_VISIBILITY_PUBLIC
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#endif // BASE_COMPILER_SPECIFIC_H_
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
diff --git a/third_party/blink/renderer/core/frame/frame_view.h b/third_party/blink/renderer/core/frame/frame_view.h
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
index aa5e42a..ec93d89 100644
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
--- a/third_party/blink/renderer/core/frame/frame_view.h
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+++ b/third_party/blink/renderer/core/frame/frame_view.h
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
@@ -5,6 +5,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_FRAME_VIEW_H_
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_FRAME_VIEW_H_
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+#include "base/compiler_specific.h"
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#include "third_party/blink/public/platform/viewport_intersection_state.h"
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
#include "third_party/blink/renderer/core/frame/embedded_content_view.h"
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
@@ -20,7 +21,7 @@ struct IntrinsicSizingInfo;
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
// clang::lto_visibility_public is necessary to prevent the compiler from
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
// performing a vtable optimization that crashes the renderer. See
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
// crbug.com/1062006.
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
-class CORE_EXPORT [[clang::lto_visibility_public]] FrameView
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
+class CORE_EXPORT LTO_VISIBILITY_PUBLIC FrameView
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
: public EmbeddedContentView {
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
public:
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
FrameView(const IntRect& frame_rect) : EmbeddedContentView(frame_rect) {}
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
--
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
2.26.2
|
|
![](https://seccdn.libravatar.org/avatar/6bc20550c752ba849c045db39b646a1cf4359ecaade6d9cca60b8421d81bd73e?s=16&d=retro) |
4f31ec8 |
|