/* PR c/41045 */
/* { dg-do compile } */
/* { dg-options "-O0" } */
/* { dg-additional-options "-fno-pie" { target pie } } */

struct S { char a; long long b; int c; };
enum E { E0, E1 = sizeof (struct S) + 15 };
int v[42];
void foo (void) {}

/* Not all targets can use %cN even in non-pic code.  */
#if defined(__riscv) || defined(__loongarch__)
asm ("# %0 %1 %2 %cc3 %cc4 %5 %% %="
#else
asm ("# %0 %1 %2 %c3 %c4 %5 %% %="
#endif
     :: "i" (sizeof (struct S)),
	"i" (__builtin_offsetof (struct S, c)),
	"i" (E1),
	"s" (foo),
	"i" (v),
/* Not all targets can satisfy "m" even in non-pic code.  */
#if !defined(__i386__) && !defined(__x86_64__)
	"s" (v));
#else
	"m" (v));
asm ("# %0 %1"
     : "=m" (v[16])
     : "m" (v[41]));
#endif