PR c++/33887
* decl.c (record_builtin_java_type): Make __java_boolean
a variant of bool.
* typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
after TYPE_MAIN_VARIANT check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131840
138bc75d-0d04-0410-961f-
82ee72b054a4
+2008-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR c++/33887
+ * decl.c (record_builtin_java_type): Make __java_boolean
+ a variant of bool.
+ * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
+ after TYPE_MAIN_VARIANT check.
+
2008-01-25 Jason Merrill <jason@redhat.com>
* decl2.c (is_late_template_attribute): Don't defer attribute
tree type, decl;
if (size > 0)
type = make_signed_type (size);
+ else if (size == -1)
+ { /* "__java_boolean". */
+ type = build_variant_type_copy (boolean_type_node);
+ }
else if (size > -32)
- { /* "__java_char" or ""__java_boolean". */
+ { /* "__java_char". */
type = make_unsigned_type (-size);
- /*if (size == -1) TREE_SET_CODE (type, BOOLEAN_TYPE);*/
}
else
{ /* "__java_float" or ""__java_double". */
if (TREE_CODE (t1) != ARRAY_TYPE
&& TYPE_QUALS (t1) != TYPE_QUALS (t2))
return false;
- if (TYPE_FOR_JAVA (t1) != TYPE_FOR_JAVA (t2))
- return false;
/* Allow for two different type nodes which have essentially the same
definition. Note that we already checked for equality of the type
&& TYPE_MAIN_VARIANT (t1) == TYPE_MAIN_VARIANT (t2))
return true;
+ if (TYPE_FOR_JAVA (t1) != TYPE_FOR_JAVA (t2))
+ return false;
+
/* Compare the types. Break out if they could be the same. */
switch (TREE_CODE (t1))
{