diff options
Diffstat (limited to 'clang/test/Sema')
| -rw-r--r-- | clang/test/Sema/pointer-addition.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/clang/test/Sema/pointer-addition.c b/clang/test/Sema/pointer-addition.c index 95f364fc676..81a1dc06c1f 100644 --- a/clang/test/Sema/pointer-addition.c +++ b/clang/test/Sema/pointer-addition.c @@ -2,13 +2,18 @@  typedef struct S S; // expected-note{{forward declaration of 'struct S'}}  void a(S* b, void* c) { +  void (*fp)(int) = 0;    b++;       // expected-error {{arithmetic on pointer to incomplete type}}    b += 1;    // expected-error {{arithmetic on pointer to incomplete type}}    c++;       // expected-warning {{use of GNU void* extension}}    c += 1;    // expected-warning {{use of GNU void* extension}} +  c--;       // expected-warning {{use of GNU void* extension}} +  c -= 1;    // expected-warning {{use of GNU void* extension}}    b = 1+b;   // expected-error {{arithmetic on pointer to incomplete type}}    /* The next couple tests are only pedantic warnings in gcc */    void (*d)(S*,void*) = a; -  d += 1;    // expected-error {{arithmetic on pointer to function type}}} -  d++;       // expected-error {{arithmetic on pointer to function type}}} +  d += 1;    // expected-warning {{arithmetic on pointer to function type 'void (*)(S *, void *)' is a GNU extension}} +  d++;       // expected-warning {{arithmetic on pointer to function type 'void (*)(S *, void *)' is a GNU extension}}} +  d--;       // expected-warning {{arithmetic on pointer to function type 'void (*)(S *, void *)' is a GNU extension}} +  d -= 1;    // expected-warning {{arithmetic on pointer to function type 'void (*)(S *, void *)' is a GNU extension}}  } | 

