diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-12-24 18:15:12 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-12-24 18:15:12 -0500 |
commit | 1598f4da785010db4282a0f502eb2bfc5a9839e1 (patch) | |
tree | 78efef641e425b64531a74597f45affa0032cc80 /gcc | |
parent | 64d60f91a61bc6725c21651a953d70313a00aa39 (diff) | |
download | gcc-1598f4da785010db4282a0f502eb2bfc5a9839e1.zip gcc-1598f4da785010db4282a0f502eb2bfc5a9839e1.tar.gz gcc-1598f4da785010db4282a0f502eb2bfc5a9839e1.tar.bz2 |
(mark_addressable, case COMPONENT_REF): Give error if taking address
of a bit field.
From-SVN: r10858
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-typeck.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index d76e724..d8e4ff1 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -3292,8 +3292,15 @@ mark_addressable (exp) while (1) switch (TREE_CODE (x)) { - case ADDR_EXPR: case COMPONENT_REF: + if (DECL_C_BIT_FIELD (TREE_OPERAND (x, 1))) + error ("cannot take address of bitfield `%s'", + IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (x, 1)))); + return 0; + + /* ... fall through ... */ + + case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: case IMAGPART_EXPR: |