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