diff options
author | Joseph Myers <joseph@codesourcery.com> | 2009-04-18 23:34:10 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2009-04-18 23:34:10 +0100 |
commit | 2b4b70360f735644f8df105d2057023135367168 (patch) | |
tree | 77e977c132707d7acd5acdad294ab595d741a594 /gcc/testsuite | |
parent | 5cf217fff1128005fb24e95ffa0b72c844af3d37 (diff) | |
download | gcc-2b4b70360f735644f8df105d2057023135367168.zip gcc-2b4b70360f735644f8df105d2057023135367168.tar.gz gcc-2b4b70360f735644f8df105d2057023135367168.tar.bz2 |
re PR c/22367 (constraints on '&' not fully implemented)
PR c/22367
* c-typeck.c (build_unary_op): Check for taking address of
expression of type void.
testsuite:
* gcc.dg/lvalue-6.c, gcc.dg/lvalue-7.c: New tests.
From-SVN: r146332
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lvalue-6.c | 17 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lvalue-7.c | 16 |
3 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0ccc20a..a2b0bb0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2009-04-18 Joseph Myers <joseph@codesourcery.com> + PR c/22367 + * gcc.dg/lvalue-6.c, gcc.dg/lvalue-7.c: New tests. + +2009-04-18 Joseph Myers <joseph@codesourcery.com> + * gcc.dg/cpp/include5.c: New test. 2009-04-18 Joseph Myers <joseph@codesourcery.com> diff --git a/gcc/testsuite/gcc.dg/lvalue-6.c b/gcc/testsuite/gcc.dg/lvalue-6.c new file mode 100644 index 0000000..af69de4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/lvalue-6.c @@ -0,0 +1,17 @@ +/* Test constraints on unary '&': PR 22367. */ + +/* { dg-do compile } */ +/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */ + +extern void v; +void f1 (void) { &v; } /* { dg-error "taking address of expression of type 'void'" } */ + +extern void *pv; +void f2 (void) { &*pv; } /* { dg-warning "dereferencing" } */ +/* { dg-error "taking address of expression of type 'void'" "C90 only error" { target *-*-* } 10 } */ + +extern const void cv; +void f3 (void) { &cv; } + +extern const void *pcv; +void f4 (void) { &*pcv; } /* { dg-warning "dereferencing" } */ diff --git a/gcc/testsuite/gcc.dg/lvalue-7.c b/gcc/testsuite/gcc.dg/lvalue-7.c new file mode 100644 index 0000000..37964e1c --- /dev/null +++ b/gcc/testsuite/gcc.dg/lvalue-7.c @@ -0,0 +1,16 @@ +/* Test constraints on unary '&': PR 22367. */ + +/* { dg-do compile } */ +/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ + +extern void v; +void f1 (void) { &v; } /* { dg-error "taking address of expression of type 'void'" } */ + +extern void *pv; +void f2 (void) { &*pv; } /* { dg-warning "dereferencing" } */ + +extern const void cv; +void f3 (void) { &cv; } + +extern const void *pcv; +void f4 (void) { &*pcv; } /* { dg-warning "dereferencing" } */ |