buildroot/package/odb/0011-Adjust-to-changes-in-GCC-10.patch
Adam Duskett b2266009be package/odb: new package
ODB is an open-source, cross-platform, and cross-database
object-relational mapping (ORM) system for C++. It allows you to
persist C++ objects to a relational database without having to deal
with tables, columns, or SQL and without manually writing any mapping
code.

ODB supports MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL
Server relational databases as well as C++98/03 and C++11 language
standards.  It also comes with optional profiles for Boost and Qt
which allow you to seamlessly use value types, containers, and smart
pointers from these libraries in your persistent C++ classes.

This package is used for auto-generating ODB specific header files
into useable code that can be linked against a seperate libodb and a
specific libodb database library.  As such, it is only needed as a
host program and is not user selectable.

Signed-off-by: Adam Duskett <aduskett@gmail.com>
[Kamel: Fix incorrect odb license]
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
[Thomas: add patch fixing gcc10 build, add references to upstream
commits]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-07-12 12:44:43 +02:00

98 lines
3.2 KiB
Diff

From 060bb7eb4d008fbd4a9fa8ef7c5e33c9e483eb52 Mon Sep 17 00:00:00 2001
From: Boris Kolpackov <boris@codesynthesis.com>
Date: Wed, 17 Jun 2020 11:22:11 +0200
Subject: [PATCH] Adjust to changes in GCC 10
[Upstream: 060bb7eb4d008fbd4a9fa8ef7c5e33c9e483eb52]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
odb/gcc.hxx | 7 +++++--
odb/parser.cxx | 8 ++++----
odb/semantics/elements.cxx | 4 ++--
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/odb/gcc.hxx b/odb/gcc.hxx
index 9b644d7..af0e2a0 100644
--- a/odb/gcc.hxx
+++ b/odb/gcc.hxx
@@ -151,10 +151,13 @@ gcc_tree_code_name (gcc_tree_code_type tc) {return tree_code_name[tc];}
#define DECL_CHAIN(x) TREE_CHAIN(x)
#endif
-// In GCC 6, ANON_AGGRNAME_P became anon_aggrname_p().
+// In GCC 6 ANON_AGGRNAME_P became anon_aggrname_p().
+// In GCC 10 anon_aggrname_p() became IDENTIFIER_ANON_P.
//
#if BUILDING_GCC_MAJOR < 6
-# define anon_aggrname_p(X) ANON_AGGRNAME_P(X)
+# define IDENTIFIER_ANON_P(X) ANON_AGGRNAME_P(X)
+#elif BUILDING_GCC_MAJOR < 10
+# define IDENTIFIER_ANON_P(X) anon_aggrname_p(X)
#endif
// In GCC 9:
diff --git a/odb/parser.cxx b/odb/parser.cxx
index 69d9b28..58388c9 100644
--- a/odb/parser.cxx
+++ b/odb/parser.cxx
@@ -1103,14 +1103,14 @@ emit_type_decl (tree decl)
// says that in typedef struct {} S; S becomes struct's
// name.
//
- if (anon_aggrname_p (decl_name))
+ if (IDENTIFIER_ANON_P (decl_name))
{
tree d (TYPE_NAME (t));
if (d != NULL_TREE &&
!DECL_ARTIFICIAL (d) &&
DECL_NAME (d) != NULL_TREE &&
- !anon_aggrname_p (DECL_NAME (d)))
+ !IDENTIFIER_ANON_P (DECL_NAME (d)))
{
decl = d;
decl_name = DECL_NAME (decl);
@@ -1727,7 +1727,7 @@ create_type (tree t,
ts << "start anon/stub " << gcc_tree_code_name(tc) << " at "
<< file << ":" << line << endl;
- if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d)))
+ if (d == NULL_TREE || IDENTIFIER_ANON_P (DECL_NAME (d)))
{
if (tc == RECORD_TYPE)
r = &emit_class<class_> (t, file, line, clmn);
@@ -1824,7 +1824,7 @@ create_type (tree t,
ts << "start anon/stub " << gcc_tree_code_name(tc) << " at "
<< file << ":" << line << endl;
- if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d)))
+ if (d == NULL_TREE || IDENTIFIER_ANON_P (DECL_NAME (d)))
{
r = &emit_enum (t, access, file, line, clmn);
}
diff --git a/odb/semantics/elements.cxx b/odb/semantics/elements.cxx
index f937f54..2d266cf 100644
--- a/odb/semantics/elements.cxx
+++ b/odb/semantics/elements.cxx
@@ -75,7 +75,7 @@ namespace semantics
if (tree decl = TYPE_NAME (n))
name = DECL_NAME (decl);
- return name != 0 && anon_aggrname_p (name);
+ return name != 0 && IDENTIFIER_ANON_P (name);
}
return true;
@@ -124,7 +124,7 @@ namespace semantics
if (tree decl = TYPE_NAME (type))
{
name = DECL_NAME (decl);
- if (name != 0 && anon_aggrname_p (name))
+ if (name != 0 && IDENTIFIER_ANON_P (name))
return true;
tree s (CP_DECL_CONTEXT (decl));
--
2.26.2