[gcc-6] 312/401: [ Iain Buclaw ] * Use needsCodegen rather than isRoot for determining the static/extern of a template symbol. Closes: #845377.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:50:19 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch pu/reproducible_builds
in repository gcc-6.

commit 7673d123c432c30e2c008149d6da0e51655aed5e
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Mon Dec 12 11:42:01 2016 +0000

      [ Iain Buclaw ]
      * Use needsCodegen rather than isRoot for determining the static/extern of a
        template symbol. Closes: #845377.
    
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@9174 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog               |  4 ++++
 debian/patches/gdc-845377.diff | 33 +++++++++++++++++++++++++++++++++
 debian/rules.patch             |  3 ++-
 3 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 33f3863..f61c321 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -32,6 +32,10 @@ gcc-6 (6.2.1-6) UNRELEASED; urgency=medium
   [ Svante Signell ]
   * GNU/Hurd port for gccgo.
 
+  [ Iain Buclaw ]
+  * Use needsCodegen rather than isRoot for determining the static/extern of a
+    template symbol. Closes: #845377.
+
  -- Matthias Klose <doko at debian.org>  Mon, 12 Dec 2016 11:38:52 +0100
 
 gcc-6 (6.2.1-5) unstable; urgency=medium
diff --git a/debian/patches/gdc-845377.diff b/debian/patches/gdc-845377.diff
new file mode 100644
index 0000000..b0cb091
--- /dev/null
+++ b/debian/patches/gdc-845377.diff
@@ -0,0 +1,33 @@
+Index: gcc-6-6.2.1/src/gcc/d/d-objfile.cc
+===================================================================
+--- gcc-6-6.2.1.orig/src/gcc/d/d-objfile.cc
++++ gcc-6-6.2.1/src/gcc/d/d-objfile.cc
+@@ -1727,21 +1727,17 @@ d_comdat_linkage(tree decl)
+ void
+ get_template_storage_info (Dsymbol *dsym, bool *local_p, bool *template_p)
+ {
+-  *local_p = output_module_p(dsym->getModule());
++  TemplateInstance *ti = dsym->isInstantiated();
++  *local_p = false;
+   *template_p = false;
+-  Dsymbol *sym = dsym->toParent();
+ 
+-  while (sym)
++  if (ti != NULL)
+     {
+-      TemplateInstance *ti = sym->isTemplateInstance();
+-      if (ti)
+-	{
+-	  *local_p = output_module_p(ti->minst);
+-	  *template_p = true;
+-	  break;
+-	}
+-      sym = sym->toParent();
++      *local_p = ti->needsCodegen();
++      *template_p = true;
+     }
++  else
++    *local_p = (dsym->getModule() && dsym->getModule()->isRoot());
+ }
+ 
+ // Set a DECL's STATIC and EXTERN based on the decl's storage class
diff --git a/debian/rules.patch b/debian/rules.patch
index b8bda00..1cf7fd4 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -198,7 +198,8 @@ ifeq ($(with_d),yes)
 	gdc-frontend-posix \
 	gdc-base-version \
 	gdc-profiledbuild \
-	gdc-libphobos-link
+	gdc-libphobos-link \
+	gdc-845377
 #	gdc-multiarch
   ifneq ($(GFDL_INVARIANT_FREE),yes)
     debian_patches += gdc-6-doc

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-6.git



More information about the Reproducible-commits mailing list