summaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.h
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-03 15:04:49 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-03 15:04:49 +0000
commite36e96ee2e57d0ebfd29020b55bab7b01c55090f (patch)
treeea01d0c326ebc211b3750d68cadb0c3e78b38bdc /gcc/cp/cp-tree.h
parent26593fd11f0a07242b9dd525e844f0d8ecb3dacf (diff)
downloadgcc-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.h6
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)