Objective-C++ : Fix bitfield ivars.
This fixes a regression present from 8.x; It used to be OK to test for a DECL_INITIAL value to flag that an ivar was a bitfield (the initial value was the width). This still works on C / Objective-C, but no longer on C++. Replace the test with DECL_C_BIT_FIELD() which is set for both C and C++. gcc/objc/ChangeLog: * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): Test DECL_C_BIT_FIELD to detect that an ivar is a bitfield.
This commit is contained in:
parent
04103ecbaa
commit
73699d921d
1 changed files with 1 additions and 6 deletions
|
@ -1395,12 +1395,7 @@ objc_v2_build_ivar_ref (tree datum, tree component)
|
|||
return NULL_TREE;
|
||||
|
||||
/* This routine only handles non-bitfield fields */
|
||||
/* DECL_INITIAL macro is set to width of bitfield and can be relied
|
||||
on to check for bitfield ivars. Note that I cannot rely on
|
||||
DECL_BIT_FIELD macro because it is only set when the whole struct
|
||||
is seen (at finish_struct) and not when the ivar chain is
|
||||
built. */
|
||||
if (DECL_INITIAL (field))
|
||||
if (DECL_C_BIT_FIELD (field))
|
||||
return NULL_TREE;
|
||||
|
||||
create_ivar_offset_name (var_offset_name, CLASS_NAME (class_name), field);
|
||||
|
|
Loading…
Add table
Reference in a new issue