| /* Test C23 storage class specifiers in compound literals: inline function |
| constraints. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-std=c23 -pedantic-errors" } */ |
| |
| inline void |
| f1 () |
| { |
| (static int) { 123 }; /* { dg-error "static but declared in inline function 'f1' which is not static" } */ |
| (static thread_local int) { 456 } ; /* { dg-error "static but declared in inline function 'f1' which is not static" } */ |
| (int) { 789 }; |
| (register int) { 1234 }; |
| } |
| |
| inline void |
| f1e () |
| { |
| (static int) { 123 }; |
| (static thread_local int) { 456 } ; |
| } |
| |
| static inline void |
| f1s () |
| { |
| (static int) { 123 }; |
| (static thread_local int) { 456 } ; |
| } |
| |
| inline void |
| f2 () |
| { |
| (static const int) { 123 }; |
| (static thread_local const int) { 456 }; |
| } |
| |
| inline void |
| f2e () |
| { |
| (static const int) { 123 }; |
| (static thread_local const int) { 456 }; |
| } |
| |
| static inline void |
| f2s () |
| { |
| (static const int) { 123 }; |
| (static thread_local const int) { 456 }; |
| } |
| |
| inline void |
| f3 () |
| { |
| (static constexpr int) { 123 }; |
| } |
| |
| inline void |
| f3e () |
| { |
| (static constexpr int) { 123 }; |
| } |
| |
| static inline void |
| f3s () |
| { |
| (static constexpr int) { 123 }; |
| } |
| |
| extern void f1e (); |
| extern void f2e (); |
| extern void f3e (); |