get_ref_base_and_extent can return different sizes for COMPONENT_REFs and DECLs of the same type, with the latter including (more?) padding. When in the IL there is an assignment between such a COMPONENT_REF and a DECL, SRA will try to propagate the access from the former as a child of the latter, creating an artificial reference that does not match the access's declared size, which triggers a verifier assert. Fixed by teaching the propagation functions about this special situation so that they don't do it. The condition is the same that build_user_friendly_ref_for_offset uses so the artificial reference causing the verifier is guaranteed not to be created. 2020-02-14 Martin Jambor <mjambor@suse.cz> PR tree-optimization/93516 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create access of the same type as the parent. (propagate_subaccesses_from_lhs): Likewise. gcc/testsuite/ * g++.dg/tree-ssa/pr93516.C: New test.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
20040317-1.C | Loading commit data... | |
alias-access-path-1.C | Loading commit data... | |
array-temp1.C | Loading commit data... | |
block1.C | Loading commit data... | |
builtin1.C | Loading commit data... | |
calloc.C | Loading commit data... | |
copyprop-1.C | Loading commit data... | |
copyprop.C | Loading commit data... | |
counts-1.C | Loading commit data... | |
cprop-vcond.C | Loading commit data... | |
deleted-label1.C | Loading commit data... | |
dom-invalid.C | Loading commit data... | |
ehcleanup-1.C | Loading commit data... | |
empty-1.C | Loading commit data... | |
empty-2.C | Loading commit data... | |
empty-3.C | Loading commit data... | |
empty-loop.C | Loading commit data... | |
final1.C | Loading commit data... | |
final2.C | Loading commit data... | |
final3.C | Loading commit data... | |
fold-compare.C | Loading commit data... | |
forwprop-switch.C | Loading commit data... | |
fwprop-align.C | Loading commit data... | |
inline-1.C | Loading commit data... | |
inline-2.C | Loading commit data... | |
inline-3.C | Loading commit data... | |
inline-4.C | Loading commit data... | |
ivopts-1.C | Loading commit data... | |
ivopts-2.C | Loading commit data... | |
ivopts-3.C | Loading commit data... | |
ldist-1.C | Loading commit data... | |
lifetime-dse1.C | Loading commit data... | |
loop-cond-split-1.C | Loading commit data... | |
new1.C | Loading commit data... | |
nonzero-1.C | Loading commit data... | |
nonzero-2.C | Loading commit data... | |
nonzero-3.C | Loading commit data... | |
nothrow-1.C | Loading commit data... | |
obj-type-ref.C | Loading commit data... | |
phiopt-1.C | Loading commit data... | |
pointer-reference-alias.C | Loading commit data... | |
pr13146.C | Loading commit data... | |
pr13954.C | Loading commit data... | |
pr14703.C | Loading commit data... | |
pr14814.C | Loading commit data... | |
pr15791-1.C | Loading commit data... | |
pr15791-2.C | Loading commit data... | |
pr15791-3.C | Loading commit data... | |
pr15791-4.C | Loading commit data... | |
pr15791-5.C | Loading commit data... | |
pr16688.C | Loading commit data... | |
pr17153.C | Loading commit data... | |
pr17400.C | Loading commit data... | |
pr17517.C | Loading commit data... | |
pr18178.C | Loading commit data... | |
pr19476-1.C | Loading commit data... | |
pr19476-2.C | Loading commit data... | |
pr19476-3.C | Loading commit data... | |
pr19476-4.C | Loading commit data... | |
pr19476-5.C | Loading commit data... | |
pr19476-6.C | Loading commit data... | |
pr19476-7.C | Loading commit data... | |
pr19637.C | Loading commit data... | |
pr19786.C | Loading commit data... | |
pr19807.C | Loading commit data... | |
pr19952.C | Loading commit data... | |
pr20280.C | Loading commit data... | |
pr20458.C | Loading commit data... | |
pr20489.C | Loading commit data... | |
pr20920.C | Loading commit data... | |
pr20963.C | Loading commit data... | |
pr21082.C | Loading commit data... | |
pr21407.C | Loading commit data... | |
pr21463.C | Loading commit data... | |
pr21584-1.C | Loading commit data... | |
pr21584-2.C | Loading commit data... | |
pr22005.C | Loading commit data... | |
pr22037.C | Loading commit data... | |
pr22071.C | Loading commit data... | |
pr22279.C | Loading commit data... | |
pr22404.C | Loading commit data... | |
pr22444.C | Loading commit data... | |
pr22488.C | Loading commit data... | |
pr22550.C | Loading commit data... | |
pr22615.C | Loading commit data... | |
pr23046.C | Loading commit data... | |
pr23164.C | Loading commit data... | |
pr23624.C | Loading commit data... | |
pr23948.C | Loading commit data... | |
pr24172.C | Loading commit data... | |
pr24231-1.C | Loading commit data... | |
pr24231-2.C | Loading commit data... | |
pr24231-3.C | Loading commit data... | |
pr24238.C | Loading commit data... | |
pr24351-1.C | Loading commit data... | |
pr24351-2.C | Loading commit data... | |
pr24351-3.C | Loading commit data... | |
pr24439.C | Loading commit data... | |
pr25771.C | Loading commit data... | |
pr26140.C | Loading commit data... | |
pr26406.C | Loading commit data... | |
pr26443.C | Loading commit data... | |
pr26757.C | Loading commit data... | |
pr27090.C | Loading commit data... | |
pr27283.C | Loading commit data... | |
pr27291.C | Loading commit data... | |
pr27548.C | Loading commit data... | |
pr27549.C | Loading commit data... | |
pr27830.C | Loading commit data... | |
pr27894.C | Loading commit data... | |
pr28003.C | Loading commit data... | |
pr28238.C | Loading commit data... | |
pr29902.C | Loading commit data... | |
pr30738.C | Loading commit data... | |
pr31146-2.C | Loading commit data... | |
pr31146.C | Loading commit data... | |
pr31307.C | Loading commit data... | |
pr33593.C | Loading commit data... | |
pr33604.C | Loading commit data... | |
pr33615-2.C | Loading commit data... | |
pr33615.C | Loading commit data... | |
pr34063.C | Loading commit data... | |
pr34355.C | Loading commit data... | |
pr35144.C | Loading commit data... | |
pr36766.C | Loading commit data... | |
pr37084.C | Loading commit data... | |
pr37284.C | Loading commit data... | |
pr37337.C | Loading commit data... | |
pr37356.C | Loading commit data... | |
pr37393.C | Loading commit data... | |
pr38104.C | Loading commit data... | |
pr38572.C | Loading commit data... | |
pr38632.C | Loading commit data... | |
pr40874.C | Loading commit data... | |
pr41186.C | Loading commit data... | |
pr41275.C | Loading commit data... | |
pr41428.C | Loading commit data... | |
pr41905.C | Loading commit data... | |
pr41906.C | Loading commit data... | |
pr41961.C | Loading commit data... | |
pr42337.C | Loading commit data... | |
pr43411.C | Loading commit data... | |
pr44706.C | Loading commit data... | |
pr44914.C | Loading commit data... | |
pr45453.C | Loading commit data... | |
pr45605.C | Loading commit data... | |
pr46228.C | Loading commit data... | |
pr46734.C | Loading commit data... | |
pr46987.C | Loading commit data... | |
pr47707.C | Loading commit data... | |
pr49516.C | Loading commit data... | |
pr49911.C | Loading commit data... | |
pr50622.C | Loading commit data... | |
pr50741.C | Loading commit data... | |
pr53844.C | Loading commit data... | |
pr54515.C | Loading commit data... | |
pr57380.C | Loading commit data... | |
pr58404.C | Loading commit data... | |
pr61009.C | Loading commit data... | |
pr61034.C | Loading commit data... | |
pr63841.C | Loading commit data... | |
pr66726.C | Loading commit data... | |
pr68760.C | Loading commit data... | |
pr69336.C | Loading commit data... | |
pr69547.C | Loading commit data... | |
pr70171.C | Loading commit data... | |
pr77943.C | Loading commit data... | |
pr78687.C | Loading commit data... | |
pr78847.C | Loading commit data... | |
pr79159.C | Loading commit data... | |
pr80293.C | Loading commit data... | |
pr81408.C | Loading commit data... | |
pr81702.C | Loading commit data... | |
pr81719.C | Loading commit data... | |
pr82294.C | Loading commit data... | |
pr83215.C | Loading commit data... | |
pr83518.C | Loading commit data... | |
pr83523.C | Loading commit data... | |
pr86062.C | Loading commit data... | |
pr86544.C | Loading commit data... | |
pr87008.C | Loading commit data... | |
pr87436.C | Loading commit data... | |
pr87686.C | Loading commit data... | |
pr8781.C | Loading commit data... | |
pr88152-1.C | Loading commit data... | |
pr88152-2.C | Loading commit data... | |
pr88797.C | Loading commit data... | |
pr89698.C | Loading commit data... | |
pr89802.C | Loading commit data... | |
pr90078.C | Loading commit data... | |
pr90883.C | Loading commit data... | |
pr92751.C | Loading commit data... | |
pr93516.C | Loading commit data... | |
pred-1.C | Loading commit data... | |
ptrmemfield.C | Loading commit data... | |
restrict1.C | Loading commit data... | |
restrict2.C | Loading commit data... | |
restrict3.C | Loading commit data... | |
sra-1.C | Loading commit data... | |
ssa-cast-1.C | Loading commit data... | |
ssa-dom.C | Loading commit data... | |
ssa-dse-1.C | Loading commit data... | |
ssa-dse-2.C | Loading commit data... | |
ssa-dse-3.C | Loading commit data... | |
ssa-sra-1.C | Loading commit data... | |
ssa-sra-2.C | Loading commit data... | |
ssa-sra-3.C | Loading commit data... | |
ssa-store-ccp-1.C | Loading commit data... | |
stabilize1.C | Loading commit data... | |
strlenopt-1.C | Loading commit data... | |
strlenopt-2.C | Loading commit data... | |
tail-call-1.C | Loading commit data... | |
tmmti.C | Loading commit data... | |
volatile1.C | Loading commit data... | |
volatile2.C | Loading commit data... |