re PR c++/53524 (Bogus enum comparison warning)
2012-06-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53524 * doc/invoke.texi (Wenum-compare): Update documentation. /cp 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53524 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare to control enumeral mismatch in conditional expression too. /testsuite 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53524 * g++.dg/warn/Wenum-compare-no-2: New. From-SVN: r188207
This commit is contained in:
parent
60f854df86
commit
a26669749c
|
@ -1,3 +1,8 @@
|
|||
2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/53524
|
||||
* doc/invoke.texi (Wenum-compare): Update documentation.
|
||||
|
||||
2012-06-04 Edmar Wienskoski <edmar@freescale.com>
|
||||
|
||||
PR target/53559
|
||||
|
@ -23,7 +28,7 @@
|
|||
|
||||
Backport from mainline
|
||||
2012-04-25 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
|
||||
PR middle-end/52979
|
||||
* stor-layout.c (get_best_mode): Don't return mode with bitsize
|
||||
larger than maxbits. Don't compute maxbits modulo align.
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/53524
|
||||
* call.c (build_conditional_expr_1): Use OPT_Wenum_compare
|
||||
to control enumeral mismatch in conditional expression too.
|
||||
|
||||
2012-06-01 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/52973
|
||||
|
|
|
@ -4630,7 +4630,7 @@ build_conditional_expr_1 (tree arg1, tree arg2, tree arg3,
|
|||
&& TREE_CODE (arg3_type) == ENUMERAL_TYPE)
|
||||
{
|
||||
if (complain & tf_warning)
|
||||
warning (0,
|
||||
warning (OPT_Wenum_compare,
|
||||
"enumeral mismatch in conditional expression: %qT vs %qT",
|
||||
arg2_type, arg3_type);
|
||||
}
|
||||
|
|
|
@ -4213,9 +4213,10 @@ while} statement. This warning is also enabled by @option{-Wextra}.
|
|||
@item -Wenum-compare
|
||||
@opindex Wenum-compare
|
||||
@opindex Wno-enum-compare
|
||||
Warn about a comparison between values of different enumerated types. In C++
|
||||
this warning is enabled by default. In C this warning is enabled by
|
||||
@option{-Wall}.
|
||||
Warn about a comparison between values of different enumerated types.
|
||||
In C++ enumeral mismatches in conditional expressions are also
|
||||
diagnosed and the warning is enabled by default. In C this warning is
|
||||
enabled by @option{-Wall}.
|
||||
|
||||
@item -Wjump-misses-init @r{(C, Objective-C only)}
|
||||
@opindex Wjump-misses-init
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/53524
|
||||
* g++.dg/warn/Wenum-compare-no-2: New.
|
||||
|
||||
2012-06-04 Edmar Wienskoski <edmar@freescale.com>
|
||||
|
||||
PR target/53559
|
||||
|
@ -14,7 +19,7 @@
|
|||
|
||||
Backport from mainline
|
||||
2012-04-25 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
|
||||
PR middle-end/52979
|
||||
* gcc.c-torture/compile/pr52979-1.c: New test.
|
||||
* gcc.c-torture/execute/pr52979-1.c: New test.
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
// PR c++/53524
|
||||
// { dg-options "-Wno-enum-compare" }
|
||||
|
||||
template < typename > struct PointerLikeTypeTraits {
|
||||
enum { NumLowBitsAvailable };
|
||||
};
|
||||
|
||||
class CodeGenInstruction;
|
||||
class CodeGenInstAlias;
|
||||
|
||||
template < typename T>
|
||||
struct PointerIntPair {
|
||||
enum { IntShift = T::NumLowBitsAvailable };
|
||||
};
|
||||
|
||||
template < typename PT1, typename PT2 > struct PointerUnionUIntTraits {
|
||||
enum {
|
||||
PT1BitsAv = PointerLikeTypeTraits < PT1 >::NumLowBitsAvailable,
|
||||
PT2BitsAv = PointerLikeTypeTraits < PT2 >::NumLowBitsAvailable,
|
||||
NumLowBitsAvailable = 0 ? PT1BitsAv : PT2BitsAv
|
||||
};
|
||||
};
|
||||
|
||||
template < typename PT1, typename PT2 > class PointerUnion {
|
||||
typedef PointerIntPair < PointerUnionUIntTraits < PT1, PT2 > > ValTy;
|
||||
ValTy Val;
|
||||
};
|
||||
|
||||
struct ClassInfo {
|
||||
PointerUnion < CodeGenInstruction *, CodeGenInstAlias * > DefRec;
|
||||
};
|
Loading…
Reference in New Issue