aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorZiemowit Laski <zlaski@apple.com>2005-05-24 22:22:33 +0000
committerMike Stump <mrs@gcc.gnu.org>2005-05-24 22:22:33 +0000
commit660845bf3a71cab364902d2e3b0830f08572d8f4 (patch)
tree0a08a44cd858d7e984fbacfc004a39aa76e53504 /gcc/cp/class.c
parentd11dd684081e91ffda37451fd6be1059d055130b (diff)
downloadgcc-660845bf3a71cab364902d2e3b0830f08572d8f4.zip
gcc-660845bf3a71cab364902d2e3b0830f08572d8f4.tar.gz
gcc-660845bf3a71cab364902d2e3b0830f08572d8f4.tar.bz2
class.c (layout_class_type): Do not issue C++ ABI warnings for ObjC structs.
* class.c (layout_class_type): Do not issue C++ ABI warnings for ObjC structs. * decl.c (objc_mark_locals_volatile): Streamline by calling objc_volatilize_decl(). * parser.c (cp_parser_objc_message_expression): Allow simple type specifiers (instead of merely type names) as message receivers. * pt.c (template_args_equal): Do not call objc_comptypes(). * typeck.c (composite_pointer_type): If both pointers are ObjC-esque, arbitrarily choose the first; do not call objc_comptypes(). (comptypes): Do not call objc_comptypes(). (convert_for_assignment): Call objc_compare_types(). (comp_ptr_ttypes_real): Call objc_type_quals_match() before concluding that types do not match. From-SVN: r100125
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r--gcc/cp/class.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index b70fb1f..d982b39 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -4681,6 +4681,11 @@ layout_class_type (tree t, tree *virtuals_p)
comply with the ABI. */
if (warn_abi
&& DECL_C_BIT_FIELD (field)
+ /* The TREE_NO_WARNING flag gets set by Objective-C when
+ laying out an Objective-C class. The ObjC ABI differs
+ from the C++ ABI, and so we do not want a warning
+ here. */
+ && !TREE_NO_WARNING (field)
&& !last_field_was_bitfield
&& !integer_zerop (size_binop (TRUNC_MOD_EXPR,
DECL_FIELD_BIT_OFFSET (field),