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