aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-12-24 18:15:12 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-12-24 18:15:12 -0500
commit1598f4da785010db4282a0f502eb2bfc5a9839e1 (patch)
tree78efef641e425b64531a74597f45affa0032cc80 /gcc
parent64d60f91a61bc6725c21651a953d70313a00aa39 (diff)
downloadgcc-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.c9
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: