diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2020-02-25 12:34:00 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2020-02-25 12:39:14 +0100 |
commit | 2877ad9ac28e1c7f0a6e643ca8f03f795e0f4985 (patch) | |
tree | ab11b11c923f8fedf71528054fa87a769c656971 | |
parent | 81ef67c10a3db7d789c7be653dba0a6e6a3e9958 (diff) | |
download | gcc-2877ad9ac28e1c7f0a6e643ca8f03f795e0f4985.zip gcc-2877ad9ac28e1c7f0a6e643ca8f03f795e0f4985.tar.gz gcc-2877ad9ac28e1c7f0a6e643ca8f03f795e0f4985.tar.bz2 |
Fix link failure with debug info in LTO mode
This fixes a regression whereby the program fails to link with debug
info in LTO mode because of an undefined reference to a symbol coming
from the object files containing the early debug info.
* dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/lto24.adb | 10 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/lto24_pkg1.ads | 17 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/lto24_pkg2.adb | 8 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/lto24_pkg2.ads | 5 |
7 files changed, 51 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 64120a9..78191a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-02-25 Eric Botcazou <ebotcazou@adacore.com> + + * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. + 2020-02-25 Roman Zhuykov <zhroma@ispras.ru> * doc/install.texi (--enable-checking): Adjust wording. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index fe46c7e..1fcb19a 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -27610,6 +27610,7 @@ dwarf2out_inline_entry (tree block) static void dwarf2out_size_function (tree decl) { + set_early_dwarf s; function_to_dwarf_procedure (decl); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 10bbb73..3a22e86 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2019-02-25 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/lto24.adb: New test. + * gnat.dg/lto24_pkg1.ads: New helper. + * gnat.dg/lto24_pkg2.ad[sb]: Likewise. + 2020-02-25 Richard Biener <rguenther@suse.de> * gcc.dg/tree-ssa/ssa-fre-86.c: New testcase. diff --git a/gcc/testsuite/gnat.dg/lto24.adb b/gcc/testsuite/gnat.dg/lto24.adb new file mode 100644 index 0000000..998b447 --- /dev/null +++ b/gcc/testsuite/gnat.dg/lto24.adb @@ -0,0 +1,10 @@ +-- { dg-do link } +-- { dg-options "-O -g -flto" { target lto } } + +with Lto24_Pkg1; + +procedure Lto24 is + R : Lto24_Pkg1.Rec (False); +begin + R.Empty := True; +end; diff --git a/gcc/testsuite/gnat.dg/lto24_pkg1.ads b/gcc/testsuite/gnat.dg/lto24_pkg1.ads new file mode 100644 index 0000000..abe7e91 --- /dev/null +++ b/gcc/testsuite/gnat.dg/lto24_pkg1.ads @@ -0,0 +1,17 @@ +with Lto24_Pkg2; + +package Lto24_Pkg1 is + + Max_Elem : constant Natural := Lto24_Pkg2.Get; + + type Arr is array (Natural range <>) of Boolean; + + type Rec (B : Boolean) is record + I : Integer; + case B is + when True => A : Arr (1 .. Max_Elem); + when False => Empty : Boolean; + end case; + end record; + +end Lto24_Pkg1; diff --git a/gcc/testsuite/gnat.dg/lto24_pkg2.adb b/gcc/testsuite/gnat.dg/lto24_pkg2.adb new file mode 100644 index 0000000..12fb34e --- /dev/null +++ b/gcc/testsuite/gnat.dg/lto24_pkg2.adb @@ -0,0 +1,8 @@ +package body Lto24_Pkg2 is + + function Get return Natural is + begin + return 16; + end; + +end Lto24_Pkg2; diff --git a/gcc/testsuite/gnat.dg/lto24_pkg2.ads b/gcc/testsuite/gnat.dg/lto24_pkg2.ads new file mode 100644 index 0000000..79a916e --- /dev/null +++ b/gcc/testsuite/gnat.dg/lto24_pkg2.ads @@ -0,0 +1,5 @@ +package Lto24_Pkg2 is + + function Get return Natural; + +end Lto24_Pkg2; |