diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-03 15:04:49 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-03 15:04:49 +0000 |
commit | e36e96ee2e57d0ebfd29020b55bab7b01c55090f (patch) | |
tree | ea01d0c326ebc211b3750d68cadb0c3e78b38bdc /gcc/cp/cp-tree.h | |
parent | 26593fd11f0a07242b9dd525e844f0d8ecb3dacf (diff) | |
download | gcc-e36e96ee2e57d0ebfd29020b55bab7b01c55090f.tar.gz |
* call.c (convert_arg_to_ellipsis): Use pod_type_p.
* cp-tree.h (struct lang_type): Added non_pod_class flag.
(CLASSTYPE_NON_POD_P): New macro to access it.
* class.c (finish_struct_1): Determine non-PODness.
Check for arrays of pointers (-Weffc++).
Remove array inspection duplicated code.
* tree.c (pod_type_p): Detect non-pod non-aggregate types.
Use CLASSTYPE_NON_POD_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28475 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index c5af6fdc736..31e9f8cf047 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -802,6 +802,7 @@ struct lang_type unsigned is_partial_instantiation : 1; unsigned has_mutable : 1; unsigned com_interface : 1; + unsigned non_pod_class : 1; /* When adding a flag here, consider whether or not it ought to apply to a template instance if it applies to the template. If so, make sure to copy it in instantiate_class_template! */ @@ -809,7 +810,7 @@ struct lang_type /* The MIPS compiler gets it wrong if this struct also does not fill out to a multiple of 4 bytes. Add a member `dummy' with new bits if you go over the edge. */ - unsigned dummy : 10; + unsigned dummy : 9; } type_flags; int vsize; @@ -1076,6 +1077,9 @@ struct lang_type #define CLASSTYPE_HAS_MUTABLE(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.has_mutable) #define TYPE_HAS_MUTABLE_P(NODE) (cp_has_mutable_p (NODE)) +/* Nonzero means that this class type is a non-POD class. */ +#define CLASSTYPE_NON_POD_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->type_flags.non_pod_class) + /* Nonzero means that this type is meant for communication via COM. */ #define CLASSTYPE_COM_INTERFACE(NODE) \ (TYPE_LANG_SPECIFIC(NODE)->type_flags.com_interface) |