re PR target/9164 ([Alpha] improper code generation)

PR target/9164
        * tree.c (get_narrower): For extensions with unchanged bit number,
        return the unsignedness of the outer mode.

        * gcc.c-torture/execute/20030316-1.c: New test case.

From-SVN: r64444
This commit is contained in:
Falk Hueffner 2003-03-16 19:47:36 +00:00 committed by Richard Henderson
parent e44f00b4fc
commit a4807140ad
3 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2003-03-16 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
PR target/9164
* tree.c (get_narrower): For extensions with unchanged bit number,
return the unsignedness of the outer mode.
2003-03-14 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call

View File

@ -1,3 +1,7 @@
2003-03-16 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
* gcc.c-torture/execute/20030316-1.c: New test case.
2003-03-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/6440

View File

@ -4236,10 +4236,10 @@ get_narrower (op, unsignedp_ptr)
/* See what's inside this conversion. If we decide to strip it,
we will set WIN. */
op = TREE_OPERAND (op, 0);
if (bitschange > 0)
{
op = TREE_OPERAND (op, 0);
/* An extension: the outermost one can be stripped,
but remember whether it is zero or sign extension. */
if (first)
@ -4258,6 +4258,7 @@ get_narrower (op, unsignedp_ptr)
if (first)
uns = TREE_UNSIGNED (TREE_TYPE (op));
first = 0;
op = TREE_OPERAND (op, 0);
}
win = op;