blob: 56eb6650b8b2be062de480e06c6c57dd3c28c42a [file] [log] [blame]
/* 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 ();