]>
Commit | Line | Data |
---|---|---|
bae5cddf JJ |
1 | /* PR c/48552 */ |
2 | /* { dg-do compile } */ | |
3 | /* { dg-options "" } */ | |
4 | ||
5 | struct S; | |
6 | ||
7 | void | |
8 | f1 (void *x) | |
9 | { | |
3eae54ca | 10 | __asm ("" : : "r" (*x)); /* { dg-warning "dereferencing" "deref" } */ |
6143c998 | 11 | } /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */ |
bae5cddf JJ |
12 | |
13 | void | |
14 | f2 (void *x) | |
15 | { | |
3eae54ca | 16 | __asm ("" : "=r" (*x)); /* { dg-warning "dereferencing" "deref" } */ |
6143c998 | 17 | } /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */ |
a9c697b8 | 18 | /* { dg-error "invalid lvalue in 'asm' output 0" "invalid lvalue" { target *-*-* } .-2 } */ |
bae5cddf JJ |
19 | void |
20 | f3 (void *x) | |
21 | { | |
22 | __asm ("" : : "m" (*x)); /* { dg-warning "dereferencing" } */ | |
23 | } | |
24 | ||
25 | void | |
26 | f4 (void *x) | |
27 | { | |
28 | __asm ("" : "=m" (*x)); /* { dg-warning "dereferencing" } */ | |
29 | } | |
30 | ||
31 | void | |
32 | f5 (void *x) | |
33 | { | |
3eae54ca | 34 | __asm ("" : : "g" (*x)); /* { dg-warning "dereferencing" "deref" } */ |
6143c998 | 35 | } /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */ |
bae5cddf JJ |
36 | |
37 | void | |
38 | f6 (void *x) | |
39 | { | |
3eae54ca | 40 | __asm ("" : "=g" (*x)); /* { dg-warning "dereferencing" "deref" } */ |
6143c998 | 41 | } /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */ |
a9c697b8 | 42 | /* { dg-error "invalid lvalue in 'asm' output 0" "invalid lvalue" { target *-*-* } .-2 } */ |
bae5cddf JJ |
43 | void |
44 | f7 (struct S *x) | |
45 | { | |
46 | __asm ("" : : "r" (*x)); /* { dg-error "dereferencing pointer to incomplete type" } */ | |
47 | } | |
48 | ||
49 | void | |
50 | f8 (struct S *x) | |
51 | { | |
a9c697b8 | 52 | __asm ("" : "=r" (*x)); /* { dg-error "invalid lvalue in 'asm' output 0" } */ |
d9b7be2e | 53 | } |