[Bug c++/63157] may_alias doesn't work as expected in template nested types

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Sep 4 09:36:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63157

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-09-04
     Ever confirmed|0                           |1
      Known to fail|                            |5.0

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Seems to be a C++ frontend bug - test_type<T>::type doesn't get may_alias
applied:

void check(short int*, msg*) (short int * a, struct msg * b)
{
  short int D.2260;
  struct msg_alias * {ref-all} q;
  struct type * p;

  *a = 5;
  q = b;
  q->D.2232.seq_no = 6;
  p = b;
  p->D.2254.seq_no = 6;
  D.2260 = *a;
  if (D.2260 == 5) goto <D.2261>; else goto <D.2262>;
  <D.2261>:
  abort ();
  <D.2262>:

(testcase with uncommented working case and renamed p to q for that case)

Confirmed on trunk.



More information about the Gcc-bugs mailing list