mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-12-08 23:03:46 +00:00
44 lines
1.5 KiB
Diff
44 lines
1.5 KiB
Diff
|
diff --git a/gcc/d/d-tree.h b/gcc/d/d-tree.h
|
||
|
index a514bc3902f..303d52390c2 100644
|
||
|
--- a/gcc/d/d-tree.h
|
||
|
+++ b/gcc/d/d-tree.h
|
||
|
@@ -600,6 +600,7 @@ extern tree d_signed_type (tree);
|
||
|
extern void d_keep (tree);
|
||
|
|
||
|
/* In decl.cc. */
|
||
|
+extern const char *mangle_decl (Dsymbol *);
|
||
|
extern tree mangle_internal_decl (Dsymbol *, const char *, const char *);
|
||
|
extern void build_decl_tree (Dsymbol *);
|
||
|
extern tree get_symbol_decl (Declaration *);
|
||
|
diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc
|
||
|
index 49723649230..90871b4c90b 100644
|
||
|
--- a/gcc/d/decl.cc
|
||
|
+++ b/gcc/d/decl.cc
|
||
|
@@ -59,7 +59,7 @@ along with GCC; see the file COPYING3. If not see
|
||
|
|
||
|
/* Return identifier for the external mangled name of DECL. */
|
||
|
|
||
|
-static const char *
|
||
|
+const char *
|
||
|
mangle_decl (Dsymbol *decl)
|
||
|
{
|
||
|
if (decl->isFuncDeclaration ())
|
||
|
diff --git a/gcc/d/typeinfo.cc b/gcc/d/typeinfo.cc
|
||
|
index bbd3961181d..a678b7938a6 100644
|
||
|
--- a/gcc/d/typeinfo.cc
|
||
|
+++ b/gcc/d/typeinfo.cc
|
||
|
@@ -1107,8 +1107,12 @@ public:
|
||
|
CONSTRUCTOR_APPEND_ELT (elms, size_int (i),
|
||
|
build_typeinfo (d->loc, arg->type));
|
||
|
}
|
||
|
+
|
||
|
+ const char *prefix = concat (GDC_PREFIX ("__tuple"),
|
||
|
+ mangle_decl (Module::rootModule), NULL);
|
||
|
+
|
||
|
tree ctor = build_constructor (build_ctype (satype), elms);
|
||
|
- tree decl = build_artificial_decl (TREE_TYPE (ctor), ctor);
|
||
|
+ tree decl = build_artificial_decl (TREE_TYPE (ctor), ctor, prefix);
|
||
|
|
||
|
/* The internal pointer reference should be public, but not visible outside
|
||
|
the compilation unit, as it's referencing COMDAT decls. */
|