From: Falk Hueffner Date: Sun, 16 Mar 2003 19:47:36 +0000 (+0000) Subject: re PR target/9164 ([Alpha] improper code generation) X-Git-Tag: releases/gcc-3.2.3~106 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4807140ad755681e077c35276ebd0afa2801520;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 148d87e41912..15f667f23c21 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-03-16 Falk Hueffner + + 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 * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4c04d99b42cc..b5e1ea2ab676 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-03-16 Falk Hueffner + + * gcc.c-torture/execute/20030316-1.c: New test case. + 2003-03-16 Kriang Lerdsuwanakij PR c++/6440 diff --git a/gcc/tree.c b/gcc/tree.c index 6c0c7dcf4be9..5c933720c34c 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -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;