]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/9164 ([Alpha] improper code generation)
authorFalk Hueffner <falk.hueffner@student.uni-tuebingen.de>
Sun, 16 Mar 2003 19:47:36 +0000 (19:47 +0000)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 16 Mar 2003 19:47:36 +0000 (11:47 -0800)
        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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/tree.c

index 148d87e41912857d25411ae49fc4f4aa3a9d2cd6..15f667f23c21c026c2b8e5650ee814f74d334712 100644 (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
index 4c04d99b42cc642bd97f1caec74e2bfa4ad12be3..b5e1ea2ab6767e7780e35a259dc0ca4a6bcfb84d 100644 (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
index 6c0c7dcf4be9423f871ae941a7d3a46ec7065fc9..5c933720c34ca39a819a4433f81fc1e0f6588d24 100644 (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;