diff options
author | Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> | 2003-03-16 19:43:53 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-03-16 11:43:53 -0800 |
commit | 0a71919d5257d2e9097d79d00d840f4ecfd746c4 (patch) | |
tree | b2938cc461d63e42039bf0d2ef7b462ae30c5c39 /gcc/tree.c | |
parent | 1f5a253a36c2e680af7a627a5077a61fb8afe6b6 (diff) | |
download | gcc-0a71919d5257d2e9097d79d00d840f4ecfd746c4.zip gcc-0a71919d5257d2e9097d79d00d840f4ecfd746c4.tar.gz gcc-0a71919d5257d2e9097d79d00d840f4ecfd746c4.tar.bz2 |
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: r64440
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -3958,10 +3958,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) @@ -3980,6 +3980,7 @@ get_narrower (op, unsignedp_ptr) if (first) uns = TREE_UNSIGNED (TREE_TYPE (op)); first = 0; + op = TREE_OPERAND (op, 0); } win = op; |