aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2020-03-30 11:37:30 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2020-03-31 15:54:45 +0200
commit48742e02d7136e60e8e91631d76403d56e4eee09 (patch)
treeea5c2c5b75c2484ac8d956b7e933e28a12cfae73 /gcc
parent1165109b401377a2b8028a7beaa9f50684649f2b (diff)
downloadgcc-48742e02d7136e60e8e91631d76403d56e4eee09.zip
gcc-48742e02d7136e60e8e91631d76403d56e4eee09.tar.gz
gcc-48742e02d7136e60e8e91631d76403d56e4eee09.tar.bz2
d: Use d_comdat_linkage on generated internal decl.
This adds weak linkage to internal TypeInfo data on top of the existing DECL_COMDAT, which helps in the unlikely event that two of the same TypeInfo data ends up in multiple places. gcc/d/ChangeLog: * typeinfo.cc (TypeInfoVisitor::internal_reference): Call d_comdat_linkage on generated decl.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/d/ChangeLog5
-rw-r--r--gcc/d/typeinfo.cc2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 606f7f3..ea1d7d5 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,8 @@
+2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * typeinfo.cc (TypeInfoVisitor::internal_reference): Call
+ d_comdat_linkage on generated decl.
+
2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/93038
diff --git a/gcc/d/typeinfo.cc b/gcc/d/typeinfo.cc
index 07011de..90a4494 100644
--- a/gcc/d/typeinfo.cc
+++ b/gcc/d/typeinfo.cc
@@ -358,7 +358,7 @@ class TypeInfoVisitor : public Visitor
DECL_EXTERNAL (decl) = 0;
TREE_PUBLIC (decl) = 1;
DECL_VISIBILITY (decl) = VISIBILITY_INTERNAL;
- DECL_COMDAT (decl) = 1;
+ d_comdat_linkage (decl);
d_pushdecl (decl);
return decl;