1 2 3Upstream suggests to use Chromium's hermetic clang 4instead. 5 6Signed-off-by: Maksim Sisov <msisov@igalia.com> 7--- 8From bde3186ccba169391fb428fcc296b2236ada0010 Mon Sep 17 00:00:00 2001 9From: Maksim Sisov <msisov@igalia.com> 10Date: Wed, 5 May 2021 15:20:43 +0300 11Subject: [PATCH] nomerge attribute on declaration is only available since 12 clang 12 13 14This change fixes builds with older clangs that do not allow 15nomerge attributes on declaration. Otherwise, the following error 16is produced - 17 18build error: 'nomerge' attribute cannot be applied to a declaration 19 20See https://reviews.llvm.org/D92800 21 22Change-Id: I32e1f7dc9049737d54d8a16de5308aa5aae1ced1 23--- 24 base/compiler_specific.h | 3 ++- 25 1 file changed, 2 insertions(+), 1 deletion(-) 26 27diff --git a/base/compiler_specific.h b/base/compiler_specific.h 28index 9fba098d95..8d730deed6 100644 29--- a/base/compiler_specific.h 30+++ b/base/compiler_specific.h 31@@ -346,7 +346,8 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { 32 #endif // defined(__clang_analyzer__) 33 34 // Use nomerge attribute to disable optimization of merging multiple same calls. 35-#if defined(__clang__) && HAS_ATTRIBUTE(nomerge) 36+#if defined(__clang__) && (__clang_major__ >= 12) && \ 37+ HAS_ATTRIBUTE(nomerge) && !defined(OS_CHROMEOS) 38 #define NOMERGE [[clang::nomerge]] 39 #else 40 #define NOMERGE 41