re PR debug/83765 (LTO bootstrap with Ada fails)
authorRichard Biener <rguenther@suse.de>
Wed, 10 Jan 2018 14:23:29 +0000 (14:23 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 10 Jan 2018 14:23:29 +0000 (14:23 +0000)
2018-01-10  Richard Biener  <rguenther@suse.de>

PR debug/83765
* dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration
early out so it also covers the case where we have a non-NULL
origin.

From-SVN: r256428

gcc/ChangeLog
gcc/dwarf2out.c

index f0e9e5948a271e314880dc2f5f8b6fcbcab51214..01a89c72ef34a2d803b13df310fe6300147816f2 100644 (file)
@@ -1,3 +1,10 @@
+2018-01-10  Richard Biener  <rguenther@suse.de>
+
+       PR debug/83765
+       * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration
+       early out so it also covers the case where we have a non-NULL
+       origin.
+
 2018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
 
        PR tree-optimization/83753
index a34b294106c42e54c1196e60c5a4e95b1a358d93..b70856fce8bfbb9b5307ac8ddce9eaeb81bb3a16 100644 (file)
@@ -22044,6 +22044,11 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
   int declaration = (current_function_decl != decl
                     || class_or_namespace_scope_p (context_die));
 
+  /* A declaration that has been previously dumped needs no
+     additional information.  */
+  if (old_die && declaration)
+    return;
+
   /* Now that the C++ front end lazily declares artificial member fns, we
      might need to retrofit the declaration into its class.  */
   if (!declaration && !origin && !old_die
@@ -22084,11 +22089,6 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
      much as possible.  */
   else if (old_die)
     {
-      /* A declaration that has been previously dumped needs no
-        additional information.  */
-      if (declaration)
-       return;
-
       if (!get_AT_flag (old_die, DW_AT_declaration)
          /* We can have a normal definition following an inline one in the
             case of redefinition of GNU C extern inlines.