aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-01-24 12:36:14 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-01-24 12:36:14 +0000
commit0e2eb6abeb77d86e672f0872bca5dd3528134734 (patch)
treee88d14cee72ed4c3aaf0a1c625c0cc6a2beaae8f /gcc
parent12502bf2e905cba16edf28941a37e6de432ea108 (diff)
downloadgcc-0e2eb6abeb77d86e672f0872bca5dd3528134734.zip
gcc-0e2eb6abeb77d86e672f0872bca5dd3528134734.tar.gz
gcc-0e2eb6abeb77d86e672f0872bca5dd3528134734.tar.bz2
re PR lto/87187 (FAIL: gfortran.dg/short_circuiting_3.f90 -g -flto (internal compiler error) on darwin)
2019-01-24 Richard Biener <rguenther@suse.de> PR lto/87187 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): When in "legacy" debug mode make sure to reset self-origins. From-SVN: r268236
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-streamer-out.c11
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f7013b7..960e8da 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-01-24 Richard Biener <rguenther@suse.de>
+
+ PR lto/87187
+ * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
+ When in "legacy" debug mode make sure to reset self-origins.
+
2019-01-24 Martin Liska <mliska@suse.cz>
PR gcov-profile/88994
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index ce7e808..b664263 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -603,7 +603,16 @@ write_ts_decl_common_tree_pointers (struct output_block *ob, tree expr,
special handling in LTO, it must be handled by streamer hooks. */
stream_write_tree (ob, DECL_ATTRIBUTES (expr), ref_p);
- stream_write_tree (ob, DECL_ABSTRACT_ORIGIN (expr), ref_p);
+
+ /* On non-early-LTO enabled targets we claim we compiled with -g0
+ but dwarf2out still did its set_decl_origin_self game fooling
+ itself late. Und that here since we won't have access to the
+ early generated abstract DIEs. */
+ tree ao = DECL_ABSTRACT_ORIGIN (expr);
+ if (debug_info_level == DINFO_LEVEL_NONE
+ && ao == expr)
+ ao = NULL_TREE;
+ stream_write_tree (ob, ao, ref_p);
if ((VAR_P (expr) || TREE_CODE (expr) == PARM_DECL)
&& DECL_HAS_VALUE_EXPR_P (expr))