xref: /OK3568_Linux_fs/buildroot/package/odb/0011-Adjust-to-changes-in-GCC-10.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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