Bug 64415 - [5 Regression] ICE: verify_ssa failed / segmentation fault with LTO
Summary: [5 Regression] ICE: verify_ssa failed / segmentation fault with LTO
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 5.0
: P1 normal
Target Milestone: 5.0
Assignee: Richard Biener
URL:
Keywords: lto
: 64498 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-12-26 22:34 UTC by Dmitry Gorbachev
Modified: 2015-01-15 12:19 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2015-01-05 00:00:00


Attachments
Testcases (319 bytes, text/plain)
2014-12-26 22:34 UTC, Dmitry Gorbachev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Gorbachev 2014-12-26 22:34:12 UTC
Created attachment 34339 [details]
Testcases

With testcase 1:

foo.c: In function 'foo':
foo.c:5:6: internal compiler error: Segmentation fault
 void foo()
      ^
0x87fd6b8 crash_signal
	../../gcc-5/gcc/toplev.c:359
0x8a2d417 gimple_code
	../../gcc-5/gcc/gimple.h:1545
0x8a2e0a6 gimple_nop_p
	../../gcc-5/gcc/gimple.h:5589
0x8a30bac verify_use
	../../gcc-5/gcc/tree-ssa.c:769
0x8a3166c verify_ssa(bool, bool)
	../../gcc-5/gcc/tree-ssa.c:1024
0x8713cdb execute_function_todo
	../../gcc-5/gcc/passes.c:1947
0x8712dfe do_per_function
	../../gcc-5/gcc/passes.c:1632
0x8713e85 execute_todo
	../../gcc-5/gcc/passes.c:1997

With testcase 2:

foo.c: In function 'foo':
foo.c:5:6: error: definition in block 3 does not dominate use in block 2
 void foo()
      ^
for SSA_NAME: _2 in statement:
# DEBUG p => _2
foo.c:5:6: internal compiler error: verify_ssa failed
0x8a318dc verify_ssa(bool, bool)
	../../gcc-5/gcc/tree-ssa.c:1062
0x8713cdb execute_function_todo
	../../gcc-5/gcc/passes.c:1947
0x8712dfe do_per_function
	../../gcc-5/gcc/passes.c:1632
0x8713e85 execute_todo
	../../gcc-5/gcc/passes.c:1997

GCC 5.0.0 20141226 (experimental) /r219070/.
Comment 1 Marek Polacek 2015-01-05 09:41:06 UTC
Confirmed.
Comment 2 H.J. Lu 2015-01-05 16:58:00 UTC
It was caused by r218767.
Comment 3 Richard Biener 2015-01-13 13:06:05 UTC
Same issue as noted elsewhere - -fvar-tracking-assignments shouldn't be in
TARGET_OPTIMIZATION_NODE.  I am testing

Index: gcc/common.opt
===================================================================
--- gcc/common.opt      (revision 219520)
+++ gcc/common.opt      (working copy)
@@ -2397,13 +2397,13 @@ Perform variable tracking
 ; annotations.  When flag_var_tracking_assignments ==
 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
 fvar-tracking-assignments
-Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
+Common Report Var(flag_var_tracking_assignments) Init(2)
 Perform variable tracking by annotating assignments
 
 ; Nonzero if we should toggle flag_var_tracking_assignments after
 ; processing options and computing its default.  */
 fvar-tracking-assignments-toggle
-Common Report Var(flag_var_tracking_assignments_toggle) Optimization
+Common Report Var(flag_var_tracking_assignments_toggle)
 Toggle -fvar-tracking-assignments
 
 ; Positive if we should track uninitialized variables, negative if
Comment 4 Richard Biener 2015-01-14 11:06:39 UTC
Fixed (in a different way).
Comment 5 Richard Biener 2015-01-14 11:06:50 UTC
Author: rguenth
Date: Wed Jan 14 11:06:18 2015
New Revision: 219588

URL: https://gcc.gnu.org/viewcvs?rev=219588&root=gcc&view=rev
Log:
2015-01-14  Richard Biener  <rguenther@suse.de>

	PR lto/64415
	* tree-inline.c (insert_debug_decl_map): Check destination
	function MAY_HAVE_DEBUG_STMTS.
	(insert_init_debug_bind): Likewise.
	(insert_init_stmt): Remove redundant check.
	(remap_gimple_stmt): Drop debug stmts if the destination
	function has var-tracking assignments disabled.

	* gcc.dg/lto/pr64415_0.c: New testcase.
	* gcc.dg/lto/pr64415_1.c: Likewise. 

Added:
    trunk/gcc/testsuite/gcc.dg/lto/pr64415_0.c
    trunk/gcc/testsuite/gcc.dg/lto/pr64415_1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-inline.c
Comment 6 Richard Biener 2015-01-14 15:27:26 UTC
*** Bug 64498 has been marked as a duplicate of this bug. ***
Comment 7 Richard Biener 2015-01-15 11:42:58 UTC
Author: rguenth
Date: Thu Jan 15 11:42:26 2015
New Revision: 219647

URL: https://gcc.gnu.org/viewcvs?rev=219647&root=gcc&view=rev
Log:
2015-01-15  Richard Biener  <rguenther@suse.de>

	PR lto/64415
	* gcc.dg/lto/pr64415_0.c: Skip on darwin.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/lto/pr64415_0.c
Comment 8 Richard Biener 2015-01-15 12:19:07 UTC
Author: rguenth
Date: Thu Jan 15 12:18:33 2015
New Revision: 219651

URL: https://gcc.gnu.org/viewcvs?rev=219651&root=gcc&view=rev
Log:
2015-01-15  Richard Biener  <rguenther@suse.de>

	PR lto/64415
	* gcc.dg/lto/pr64415_0.c: Re-enable for darwin with
	-Wl,-undefined,dynamic_lookup.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/lto/pr64415_0.c