Ran into a fragile test case:
FAIL: g+.dg/cpp0x/nsdmi-union5.C -std=c+11 scan-assembler 7

$ cat nsdmi-union5.C
// PR c++/58701
// { dg-require-effective-target c++11 }
// { dg-final { scan-assembler "7" } }

static union
{
  union
  {
    int i = 7;
  };
};

Two issues make it very fragile. It only seems to pass with -O0, as the code
will be optimized away with any non-O0 levels. This is somewhat acceptable,
but following is annoying: It scans digit 7 in resulting asm, which will
pass whenever 
* Any CPU name, file name, svn/git revision number and ARM eabi_attribute
contain digit 7. 
* All GCC x.7 versions
* Any GCC built in July or on 7th/17th/27th of the month, or in 2017
Actually I ran into this issue when I checked my test result with a
reference. Unfortunately one has digit 7 in revision number and one has not.

I tend to just not scan anything and makes it a do-compile case against ICE.
But I'm not sure if there was a reason to scan the digit. Please comment.

Thanks,
Joey


Reply via email to