| /* make sure we don't duplicate type qualifiers unneeded. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-std=c11 -gdwarf-5 -dA" } */ |
| |
| /* This should give us: |
| - One const type pointing to a char |
| - One volatile type pointing to a char |
| - One atomic type pointing to a char |
| - Either one const type pointing to the volatile type pointing to a char |
| or one volatile type pointing to the const type pointing to a char. |
| But not both. |
| - Either one volatile type pointing to an atomic type pointing to a char |
| or one atomic type pointing to a volatile type pointing to a char. |
| But not both. |
| - One restrict type pointing to a char pointer. |
| - One atomic type pointing to a char pointer. |
| - Either one restrict type pointing to an atomic type pointing to a char |
| pointer or one atomic type pointing to a restrict type pointing to a |
| char pointer. |
| But not both. */ |
| |
| |
| char a; |
| const char b; |
| volatile const char c; |
| volatile char d; |
| const volatile char e; |
| _Atomic char f; |
| _Atomic volatile char g; |
| char * _Atomic restrict h; |
| char * _Atomic i; |
| char * restrict j; |
| |
| /* The xfail is due to PR66668. */ |
| /* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_(?:const|volatile|atomic|restrict)_type" 8 { xfail cris-*-* } } } */ |