+2012-05-22 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-optimization/53336
+ * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
+ non-integer integral types to offset type and vice versa.
+
2012-05-22 Alan Modra <amodra@gmail.com>
* config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
+2012-05-22 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-optimization/53336
+ * g++.dg/torture/pr53336.C: New testcase.
+
2012-05-22 Dodji Seketeli <dodji@redhat.com>
PR c++/53322
--- /dev/null
+// { dg-do compile }
+
+bool foo();
+
+struct C
+{
+ C()
+ {
+ if (foo())
+ foo();
+ }
+};
+
+struct S
+{
+ struct dummy
+ {
+ int i_;
+ };
+ typedef int dummy::*bool_type;
+
+ operator bool_type() const
+ {
+ return foo() ? &dummy::i_ : 0;
+ }
+};
+
+int x;
+
+struct adaptor
+{
+ C c;
+
+ virtual void bar()
+ {
+ if (S())
+ x = 0;
+ }
+};
+
+int main()
+{
+ adaptor a;
+}
+
|| ptrofftype_p (sizetype))))
return false;
- /* Allow conversion from integer to offset type and vice versa. */
+ /* Allow conversion from integral to offset type and vice versa. */
if ((TREE_CODE (lhs_type) == OFFSET_TYPE
- && TREE_CODE (rhs1_type) == INTEGER_TYPE)
+ && INTEGRAL_TYPE_P (rhs1_type))
|| (TREE_CODE (lhs_type) == INTEGER_TYPE
- && TREE_CODE (rhs1_type) == OFFSET_TYPE))
+ && INTEGRAL_TYPE_P (rhs1_type)))
return false;
/* Otherwise assert we are converting between types of the