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