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

openSUSE Build Service is sponsored by