From 6f9b088b5ad5ee9b271f3a1f02a66a51bc79cd43 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Mon, 5 Jan 2009 22:41:37 +0000 Subject: [PATCH] re PR c++/38472 (Wrong result type of ternary operator) gcc/cp/ChangeLog: 2009-01-05 Dodji Seketeli PR c++/38472 * typeck.c (type_after_usual_arithmetic_conversions): Fix a typo. Promotion should be done only for integral or enumeration types. gcc/testsuite/ChangeLog: 2009-01-05 Dodji Seketeli PR c++/38472 * g++.dg/conversion/usual-arith-conv.C: New test. From-SVN: r143101 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/typeck.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7c5ae834cfd..cc4fce11d63 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2009-01-05 Dodji Seketeli + + PR c++/38472 + * typeck.c (type_after_usual_arithmetic_conversions): Fix a typo. + 2009-01-05 Jason Merrill PR c++/38701 diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index ed01c511f3c..4be7a258355 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -403,7 +403,7 @@ type_after_usual_arithmetic_conversions (tree t1, tree t2) /* Perform the integral promotions. We do not promote real types here. */ if (INTEGRAL_OR_ENUMERATION_TYPE_P (t1) - && INTEGRAL_OR_ENUMERATION_TYPE_P (t1)) + && INTEGRAL_OR_ENUMERATION_TYPE_P (t2)) { t1 = type_promotes_to (t1); t2 = type_promotes_to (t2); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 46d2881e5a8..f401ff5e03a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-01-05 Dodji Seketeli + + PR c++/38472 + * g++.dg/conversion/usual-arith-conv.C: New test. + 2009-01-05 Andrew Pinski PR c/34911