[Bug tree-optimization/65802] [6 Regression] ICE in redirect_eh_edge_1, at tree-eh.c:2335
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Apr 19 21:37:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65802
--- Comment #5 from vries at gcc dot gnu.org ---
Before the patch series, at 011.cfg we had this representation:
...
;; basic block 2, loop depth 0, count 0, freq 0, maybe hot
;; prev block 0, next block 3, flags: (NEW, REACHABLE)
;; pred: ENTRY (FALLTHRU)
D.2342 = cD.2333.gp_offsetD.5;
if (D.2342 >= 48)
goto <bb 4>;
else
goto <bb 3>;
;; succ: 4 (TRUE_VALUE)
;; 3 (FALSE_VALUE)
;; basic block 3, loop depth 0, count 0, freq 0, maybe hot
;; prev block 2, next block 4, flags: (NEW, REACHABLE)
;; pred: 2 (FALSE_VALUE)
D.2344 = cD.2333.reg_save_areaD.8;
D.2345 = cD.2333.gp_offsetD.5;
D.2346 = (sizetype) D.2345;
addr.0D.2339 = D.2344 + D.2346;
D.2347 = cD.2333.gp_offsetD.5;
D.2348 = D.2347 + 8;
cD.2333.gp_offsetD.5 = D.2348;
goto <bb 5>;
;; succ: 5 (FALLTHRU)
;; basic block 4, loop depth 0, count 0, freq 0, maybe hot
;; prev block 3, next block 5, flags: (NEW, REACHABLE)
;; pred: 2 (TRUE_VALUE)
D.2349 = cD.2333.overflow_arg_areaD.7;
addr.0D.2339 = D.2349;
D.2350 = D.2349 + 8;
cD.2333.overflow_arg_areaD.7 = D.2350;
;; succ: 5 (FALLTHRU)
;; basic block 5, loop depth 0, count 0, freq 0, maybe hot
;; prev block 4, next block 6, flags: (NEW, REACHABLE)
;; pred: 3 (FALLTHRU)
;; 4 (FALLTHRU)
d.1D.2351 = MEM[(intD.9 * * {ref-all})addr.0D.2339];
dD.2334 = d.1D.2351;
eD.2335 = &dD.2334;
__asm__("" : "=d" eD.2335);
[LP 1] # USE = anything
# CLB = anything
m_fn1D.2327 (&aD.2330);
;; succ: 9 (EH)
;; 6 (FALLTHRU)
...
There's no exception connected to the whole va_arg sequence.
So the question is: should ifn_va_arg have ECF_NOTHROW?
More information about the Gcc-bugs
mailing list