Commit 6b16805e by Jakub Jelinek Committed by Jakub Jelinek

expr.c (do_compare_and_jump): If op0 was replaced by promoted integer constant,…

expr.c (do_compare_and_jump): If op0 was replaced by promoted integer constant, use type of op1 for comparison.

	* expr.c (do_compare_and_jump): If op0 was replaced by promoted
	integer constant, use type of op1 for comparison.

	* g++.old-deja/g++.other/inline17.C: New test.

From-SVN: r37605
parent cd9c4fee
2000-11-21 Jakub Jelinek <jakub@redhat.com>
* expr.c (do_compare_and_jump): If op0 was replaced by promoted
integer constant, use type of op1 for comparison.
2000-11-20 Stan Shebs <shebs@apple.com>
* config/rs6000/xm-darwin.h: New file, Darwin host definitions.
......
......@@ -10054,8 +10054,21 @@ do_compare_and_jump (exp, signed_code, unsigned_code, if_false_label,
return;
op1 = expand_expr_unaligned (TREE_OPERAND (exp, 1), &align1);
if (TREE_CODE (TREE_OPERAND (exp, 1)) == ERROR_MARK)
return;
type = TREE_TYPE (TREE_OPERAND (exp, 0));
mode = TYPE_MODE (type);
if (TREE_CODE (TREE_OPERAND (exp, 0)) == INTEGER_CST
&& (TREE_CODE (TREE_OPERAND (exp, 1)) != INTEGER_CST
|| (GET_MODE_BITSIZE (mode)
> GET_MODE_BITSIZE (TREE_TYPE (TREE_OPERAND (exp, 1))))))
{
/* op0 might have been replaced by promoted constant, in which
case the type of second argument should be used. */
type = TREE_TYPE (TREE_OPERAND (exp, 1));
mode = TYPE_MODE (type);
}
unsignedp = TREE_UNSIGNED (type);
code = unsignedp ? unsigned_code : signed_code;
......
2000-11-21 Jakub Jelinek <jakub@redhat.com>
* g++.old-deja/g++.other/inline17.C: New test.
2000-11-20 Donald Lindsay <dlindsay@redhat.com>
* gcc.dg/20000614-2.c: Bug fix. This test expected an unitialized
......
// Build don't link:
// Origin: Jakub Jelinek <jakub@redhat.com>
// Special g++ Options: -O3
struct foo
{
char a;
foo ();
void bar ();
void baz (char c);
};
void foo::baz (char c)
{
if (c != a)
a = c;
}
void foo::bar ()
{
baz (1);
}
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