1*4882a593SmuzhiyunFrom 060bb7eb4d008fbd4a9fa8ef7c5e33c9e483eb52 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Boris Kolpackov <boris@codesynthesis.com> 3*4882a593SmuzhiyunDate: Wed, 17 Jun 2020 11:22:11 +0200 4*4882a593SmuzhiyunSubject: [PATCH] Adjust to changes in GCC 10 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun[Upstream: 060bb7eb4d008fbd4a9fa8ef7c5e33c9e483eb52] 7*4882a593SmuzhiyunSigned-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> 8*4882a593Smuzhiyun--- 9*4882a593Smuzhiyun odb/gcc.hxx | 7 +++++-- 10*4882a593Smuzhiyun odb/parser.cxx | 8 ++++---- 11*4882a593Smuzhiyun odb/semantics/elements.cxx | 4 ++-- 12*4882a593Smuzhiyun 3 files changed, 11 insertions(+), 8 deletions(-) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyundiff --git a/odb/gcc.hxx b/odb/gcc.hxx 15*4882a593Smuzhiyunindex 9b644d7..af0e2a0 100644 16*4882a593Smuzhiyun--- a/odb/gcc.hxx 17*4882a593Smuzhiyun+++ b/odb/gcc.hxx 18*4882a593Smuzhiyun@@ -151,10 +151,13 @@ gcc_tree_code_name (gcc_tree_code_type tc) {return tree_code_name[tc];} 19*4882a593Smuzhiyun #define DECL_CHAIN(x) TREE_CHAIN(x) 20*4882a593Smuzhiyun #endif 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun-// In GCC 6, ANON_AGGRNAME_P became anon_aggrname_p(). 23*4882a593Smuzhiyun+// In GCC 6 ANON_AGGRNAME_P became anon_aggrname_p(). 24*4882a593Smuzhiyun+// In GCC 10 anon_aggrname_p() became IDENTIFIER_ANON_P. 25*4882a593Smuzhiyun // 26*4882a593Smuzhiyun #if BUILDING_GCC_MAJOR < 6 27*4882a593Smuzhiyun-# define anon_aggrname_p(X) ANON_AGGRNAME_P(X) 28*4882a593Smuzhiyun+# define IDENTIFIER_ANON_P(X) ANON_AGGRNAME_P(X) 29*4882a593Smuzhiyun+#elif BUILDING_GCC_MAJOR < 10 30*4882a593Smuzhiyun+# define IDENTIFIER_ANON_P(X) anon_aggrname_p(X) 31*4882a593Smuzhiyun #endif 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun // In GCC 9: 34*4882a593Smuzhiyundiff --git a/odb/parser.cxx b/odb/parser.cxx 35*4882a593Smuzhiyunindex 69d9b28..58388c9 100644 36*4882a593Smuzhiyun--- a/odb/parser.cxx 37*4882a593Smuzhiyun+++ b/odb/parser.cxx 38*4882a593Smuzhiyun@@ -1103,14 +1103,14 @@ emit_type_decl (tree decl) 39*4882a593Smuzhiyun // says that in typedef struct {} S; S becomes struct's 40*4882a593Smuzhiyun // name. 41*4882a593Smuzhiyun // 42*4882a593Smuzhiyun- if (anon_aggrname_p (decl_name)) 43*4882a593Smuzhiyun+ if (IDENTIFIER_ANON_P (decl_name)) 44*4882a593Smuzhiyun { 45*4882a593Smuzhiyun tree d (TYPE_NAME (t)); 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun if (d != NULL_TREE && 48*4882a593Smuzhiyun !DECL_ARTIFICIAL (d) && 49*4882a593Smuzhiyun DECL_NAME (d) != NULL_TREE && 50*4882a593Smuzhiyun- !anon_aggrname_p (DECL_NAME (d))) 51*4882a593Smuzhiyun+ !IDENTIFIER_ANON_P (DECL_NAME (d))) 52*4882a593Smuzhiyun { 53*4882a593Smuzhiyun decl = d; 54*4882a593Smuzhiyun decl_name = DECL_NAME (decl); 55*4882a593Smuzhiyun@@ -1727,7 +1727,7 @@ create_type (tree t, 56*4882a593Smuzhiyun ts << "start anon/stub " << gcc_tree_code_name(tc) << " at " 57*4882a593Smuzhiyun << file << ":" << line << endl; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun- if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d))) 60*4882a593Smuzhiyun+ if (d == NULL_TREE || IDENTIFIER_ANON_P (DECL_NAME (d))) 61*4882a593Smuzhiyun { 62*4882a593Smuzhiyun if (tc == RECORD_TYPE) 63*4882a593Smuzhiyun r = &emit_class<class_> (t, file, line, clmn); 64*4882a593Smuzhiyun@@ -1824,7 +1824,7 @@ create_type (tree t, 65*4882a593Smuzhiyun ts << "start anon/stub " << gcc_tree_code_name(tc) << " at " 66*4882a593Smuzhiyun << file << ":" << line << endl; 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun- if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d))) 69*4882a593Smuzhiyun+ if (d == NULL_TREE || IDENTIFIER_ANON_P (DECL_NAME (d))) 70*4882a593Smuzhiyun { 71*4882a593Smuzhiyun r = &emit_enum (t, access, file, line, clmn); 72*4882a593Smuzhiyun } 73*4882a593Smuzhiyundiff --git a/odb/semantics/elements.cxx b/odb/semantics/elements.cxx 74*4882a593Smuzhiyunindex f937f54..2d266cf 100644 75*4882a593Smuzhiyun--- a/odb/semantics/elements.cxx 76*4882a593Smuzhiyun+++ b/odb/semantics/elements.cxx 77*4882a593Smuzhiyun@@ -75,7 +75,7 @@ namespace semantics 78*4882a593Smuzhiyun if (tree decl = TYPE_NAME (n)) 79*4882a593Smuzhiyun name = DECL_NAME (decl); 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun- return name != 0 && anon_aggrname_p (name); 82*4882a593Smuzhiyun+ return name != 0 && IDENTIFIER_ANON_P (name); 83*4882a593Smuzhiyun } 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun return true; 86*4882a593Smuzhiyun@@ -124,7 +124,7 @@ namespace semantics 87*4882a593Smuzhiyun if (tree decl = TYPE_NAME (type)) 88*4882a593Smuzhiyun { 89*4882a593Smuzhiyun name = DECL_NAME (decl); 90*4882a593Smuzhiyun- if (name != 0 && anon_aggrname_p (name)) 91*4882a593Smuzhiyun+ if (name != 0 && IDENTIFIER_ANON_P (name)) 92*4882a593Smuzhiyun return true; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun tree s (CP_DECL_CONTEXT (decl)); 95*4882a593Smuzhiyun-- 96*4882a593Smuzhiyun2.26.2 97*4882a593Smuzhiyun 98