other/6613: Problem with RTX_UNCHANGING_P (again)

jakub@gcc.gnu.org jakub@gcc.gnu.org
Mon May 13 00:03:00 GMT 2002


Synopsis: Problem with RTX_UNCHANGING_P (again)

State-Changed-From-To: open->analyzed
State-Changed-By: jakub
State-Changed-When: Mon May 13 00:03:20 2002
State-Changed-Why:
    Simplified testcase is
    struct L
    {
      enum S { A, B, C };
      L (S x = C) : l (x) {}
      L (const L &x) : l (x.l) {}
      char l;
    };
    
    const L A (L::A);
    const L B (L::B);
    
    struct T
    {
      L u, v;
    };
    
    const struct T x [] =
    {
      {A, A}, {B, A}, {B, A}, {A, B}, {B, A}, {A, B}, {A, B}, {B, B}
    };
    
    extern "C" void abort (void);
    extern "C" void exit (int);
    
    int
    main()
    {
      for (int i = 0; i < 8; i++)
        {
          if (x[i].u.l * 2 != ((((i & 3) ^ (i >> 2)) + 1) & 2))
            abort ();
          if (x[i].v.l != ((((i + 1) ^ 1) - 1) >= 4))
            abort ();
        }
      exit (0);
    }
    
    Regression from 2.95.x.
    
    For some details, see http://gcc.gnu.org/ml/gcc/2002-05/msg00642.html

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6613



More information about the Gcc-bugs mailing list