Commit 1aeaea8d by Geoffrey Keating Committed by Geoffrey Keating

btest-gcc.sh (TESTLOGS): Examine regressions in libstdc++, libffi, and libjava.

	* btest-gcc.sh (TESTLOGS): Examine regressions in libstdc++,
	libffi, and libjava.

From-SVN: r89629
parent 349e19d4
2004-10-26 Geoffrey Keating <geoffk@apple.com>
* builtins.c (fold_builtin_unordered_cmp): Always bring both
operands to the same type.
2004-10-26 James E Wilson <wilson@specifixinc.com> 2004-10-26 James E Wilson <wilson@specifixinc.com>
PR target/18010 PR target/18010
......
...@@ -7602,13 +7602,12 @@ fold_builtin_unordered_cmp (tree exp, ...@@ -7602,13 +7602,12 @@ fold_builtin_unordered_cmp (tree exp,
tree type = TREE_TYPE (TREE_TYPE (fndecl)); tree type = TREE_TYPE (TREE_TYPE (fndecl));
enum tree_code code; enum tree_code code;
tree arg0, arg1; tree arg0, arg1;
tree type0, type1;
enum tree_code code0, code1;
tree cmp_type = NULL_TREE;
if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE)) if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
{ {
enum tree_code code0, code1;
tree type0, type1;
tree cmp_type = 0;
/* Check that we have exactly two arguments. */ /* Check that we have exactly two arguments. */
if (arglist == 0 || TREE_CHAIN (arglist) == 0) if (arglist == 0 || TREE_CHAIN (arglist) == 0)
{ {
...@@ -7622,39 +7621,34 @@ fold_builtin_unordered_cmp (tree exp, ...@@ -7622,39 +7621,34 @@ fold_builtin_unordered_cmp (tree exp,
IDENTIFIER_POINTER (DECL_NAME (fndecl))); IDENTIFIER_POINTER (DECL_NAME (fndecl)));
return error_mark_node; return error_mark_node;
} }
arg0 = TREE_VALUE (arglist);
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
type0 = TREE_TYPE (arg0);
type1 = TREE_TYPE (arg1);
code0 = TREE_CODE (type0);
code1 = TREE_CODE (type1);
if (code0 == REAL_TYPE && code1 == REAL_TYPE)
/* Choose the wider of two real types. */
cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
? type0 : type1;
else if (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
cmp_type = type0;
else if (code0 == INTEGER_TYPE && code1 == REAL_TYPE)
cmp_type = type1;
else
{
error ("non-floating-point argument to function %qs",
IDENTIFIER_POINTER (DECL_NAME (fndecl)));
return error_mark_node;
}
arg0 = fold_convert (cmp_type, arg0);
arg1 = fold_convert (cmp_type, arg1);
} }
arg0 = TREE_VALUE (arglist);
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
type0 = TREE_TYPE (arg0);
type1 = TREE_TYPE (arg1);
code0 = TREE_CODE (type0);
code1 = TREE_CODE (type1);
if (code0 == REAL_TYPE && code1 == REAL_TYPE)
/* Choose the wider of two real types. */
cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
? type0 : type1;
else if (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
cmp_type = type0;
else if (code0 == INTEGER_TYPE && code1 == REAL_TYPE)
cmp_type = type1;
else else
{ {
arg0 = TREE_VALUE (arglist); error ("non-floating-point argument to function %qs",
arg1 = TREE_VALUE (TREE_CHAIN (arglist)); IDENTIFIER_POINTER (DECL_NAME (fndecl)));
return error_mark_node;
} }
arg0 = fold_convert (cmp_type, arg0);
arg1 = fold_convert (cmp_type, arg1);
if (unordered_code == UNORDERED_EXPR) if (unordered_code == UNORDERED_EXPR)
{ {
......
2004-10-26 Geoffrey Keating <geoffk@apple.com>
* gcc.c-torture/compile/20041026-1.c: New.
2004-10-26 Mark Mitchell <mark@codesourcery.com> 2004-10-26 Mark Mitchell <mark@codesourcery.com>
PR c++/18093 PR c++/18093
......
int
foo (double x, long double y)
{
return __builtin_isgreater (x, y);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment