diff options
author | giovannibajo <giovannibajo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-11-04 13:07:35 +0000 |
---|---|---|
committer | giovannibajo <giovannibajo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-11-04 13:07:35 +0000 |
commit | b312a686cbdfd56ccff48a9fa015ceec171008c3 (patch) | |
tree | 83598a1d6f066b2be9579ffd9e08efb5b5b8c2fa /gcc/cp/cvt.c | |
parent | ed48bcbb3d134bc4025bb091fbf6f28522aca32e (diff) | |
download | gcc-b312a686cbdfd56ccff48a9fa015ceec171008c3.tar.gz |
DR 49, 100
* cp-tree.h (TYPE_REF_OBJ_P): New macro.
(TYPE_PTR_P, TYPE_PTROB_P, TYPE_PTROBV_P, TYPE_PTRFN_P,
TYPE_REFFN_P): Document.
(fold_decl_constant_value): New prototype.
* pt.c (convert_nontype_argument_function): Rewrite and extract
parts into...
(fold_decl_constant_value, convert_nontype_argument_function): New.
(lookup_template_class): Add comment about useless double call.
* mangle.c (write_expression): Strip conversions before lowering
pointer to members.
* cvt.c (ocp_convert): Check LOOKUP_COMPLAIN for a pedwarn. Disallow
enum to enum conversion.
* g++.dg/template/nontype7.C: New test.
* g++.dg/template/nontype8.C: Likewise.
* g++.dg/template/nontype9.C: Likewise.
* g++.dg/template/nontype10.C: Likewise.
* g++.dg/tc1/dr49.C: Likewise.
* g++.dg/template/ptrmem8.C: Relax dg-error checks.
* g++.old-deja/g++.other/null1.C: Remove a buggy error check
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90059 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/cvt.c')
-rw-r--r-- | gcc/cp/cvt.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 3e84ed0ad89..f1968fd3a90 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -662,10 +662,13 @@ ocp_convert (tree type, tree expr, int convtype, int flags) /* enum = enum, enum = int, enum = float, (enum)pointer are all errors. */ if (TREE_CODE (type) == ENUMERAL_TYPE - && ((ARITHMETIC_TYPE_P (intype) && ! (convtype & CONV_STATIC)) - || (TREE_CODE (intype) == POINTER_TYPE))) + && (((INTEGRAL_OR_ENUMERATION_TYPE_P (intype) + || TREE_CODE (intype) == REAL_TYPE) + && ! (convtype & CONV_STATIC)) + || TREE_CODE (intype) == POINTER_TYPE)) { - pedwarn ("conversion from %q#T to %q#T", intype, type); + if (flags & LOOKUP_COMPLAIN) + pedwarn ("conversion from %q#T to %q#T", intype, type); if (flag_pedantic_errors) return error_mark_node; |