File chromium-clang-nomerge.patch of Package chromium.openSUSE_Backports_SLE-15-SP3_Update
Upstream-status: Inapproriate
Upstream suggests to use Chromium's hermetic clang
instead.
Signed-off-by: Maksim Sisov <msisov@igalia.com>
---
From bde3186ccba169391fb428fcc296b2236ada0010 Mon Sep 17 00:00:00 2001
From: Maksim Sisov <msisov@igalia.com>
Date: Wed, 5 May 2021 15:20:43 +0300
Subject: [PATCH] nomerge attribute on declaration is only available since
clang 12
This change fixes builds with older clangs that do not allow
nomerge attributes on declaration. Otherwise, the following error
is produced -
build error: 'nomerge' attribute cannot be applied to a declaration
See https://reviews.llvm.org/D92800
Change-Id: I32e1f7dc9049737d54d8a16de5308aa5aae1ced1
---
base/compiler_specific.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/base/compiler_specific.h b/base/compiler_specific.h
index 6693e9ea33e9..d3b425abe9ca 100644
--- a/base/compiler_specific.h
+++ b/base/compiler_specific.h
@@ -340,7 +340,8 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
#endif // defined(__clang_analyzer__)
// Use nomerge attribute to disable optimization of merging multiple same calls.
-#if defined(__clang__) && __has_attribute(nomerge)
+#if defined(__clang__) && (__clang_major__ >= 12) && \
+ __has_attribute(nomerge) && !defined(OS_CHROMEOS)
#define NOMERGE [[clang::nomerge]]
#else
#define NOMERGE
--
2.25.1