/* { dg-do compile } */ | |
/* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ | |
/* { dg-final { scan-assembler-times "XXX" 2 } } */ | |
static inline __attribute__((always_inline)) int dec_and_test (int *i) | |
{ | |
asm volatile goto ("XXX %0, %l[cc_label]" | |
: : "m" (*i) : "memory" : cc_label); | |
return 0; | |
cc_label: | |
return 1; | |
} | |
extern int getit (int *); | |
int f (int *i, int cond) | |
{ | |
if (cond) { | |
getit (0); | |
if (dec_and_test (i)) | |
getit (i); | |
return 42; | |
} | |
if (dec_and_test (i)) | |
(void)1; | |
return getit (i); | |
} |