* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64440
138bc75d-0d04-0410-961f-
82ee72b054a4
+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-16 Roger Sayle <roger@eyesopen.com>
* c-typeck.c (build_component_ref): Turn "for" into "do .. while"
+2003-03-16 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ * gcc.c-torture/execute/20030316-1.c: New test case.
+
2003-03-16 Nathan Sidwell <nathan@codesourcery.com>
PR c++/9629
--- /dev/null
+/* PR target/9164 */
+/* The comparison operand was sign extended erraneously. */
+
+int
+main (void)
+{
+ long j = 0x40000000;
+ if ((unsigned int) (0x40000000 + j) < 0L)
+ abort ();
+
+ return 0;
+}
/* 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)
if (first)
uns = TREE_UNSIGNED (TREE_TYPE (op));
first = 0;
+ op = TREE_OPERAND (op, 0);
}
win = op;