--- Comment #9 from rguenth at gcc dot gnu dot org 2008-12-04 16:34 ---
Note that the trunk still doesn't warn because we transform the invalid access
to a valid one by doing
node.11_19 = (struct Node *) D.2454_18;
D.2456.i = node.11_19;
D.2457_20 = VIEW_CONVERT_EXPR(D.2456).i;
i
--- Comment #7 from rguenth at gcc dot gnu dot org 2007-12-08 00:03 ---
Because the temporary object D.2360 is indeed artificial. If you disable that
filtering you get (finally)
t.ii: In function 'const QString& staticQString(const QString&)':
t.ii:110: warning: likely type-punning may
--- Comment #6 from rguenth at gcc dot gnu dot org 2007-12-07 23:57 ---
First we hit
/* XXX: don't get into structures for now. It brings much
complication
and little benefit. */
if (struct_class_union_p (ptr_type) || struct_class_union_p
(alias_type))
--- Comment #5 from rguenth at gcc dot gnu dot org 2007-12-07 23:47 ---
We don't warn with -Wstrict-aliasing=3 first because we prune the points-to
sets based on TBAA which makes o.11_19 in
o.11_19 = (const struct const_iterator *) &D.2360;
# VUSE
D.2362_20 = o.11_19->i;
point t
--- Comment #4 from rguenth at gcc dot gnu dot org 2007-12-07 23:14 ---
Right, that is invalid.
*** This bug has been marked as a duplicate of 21920 ***
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-12-07 22:52 ---
This code does not look defined:
i = reinterpret_cast < const const_iterator & >(o).i;
Where o is iterator&.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34385
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Summary|new miscompilation after|[4.3 Regression] new
|PR34148 fix |