expr.c (convert_move): If unsignedp is less then zero there is no equivalent code.
authorSteve Ellcey <sje@cup.hp.com>
Thu, 24 Oct 2002 19:52:23 +0000 (19:52 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Thu, 24 Oct 2002 19:52:23 +0000 (19:52 +0000)
* expr.c (convert_move): If unsignedp is less then zero there
is no equivalent code.

From-SVN: r58502

gcc/ChangeLog
gcc/expr.c

index 9f01b18b2085785c0784018ee55c55b2120e3a56..9b2cb93c7385d3b569ea2425e480de4a2be59b65 100644 (file)
@@ -1,3 +1,8 @@
+2002-10-24  Steve Ellcey  <sje@cup.hp.com>
+
+       * expr.c (convert_move): If unsignedp is less then zero there
+       is no equivalent code.
+
 2002-10-24  Zack Weinberg  <zack@codesourcery.com>
 
        * tree.def: Delete mention of nonexistent ARRAY_TYPE fields.
index a676b38269922a2082c0a6ebca3f448de6fb6ddf..5a14d7ee44b33b560eec47f0bc8d58304085b2bb 100644 (file)
@@ -552,7 +552,8 @@ convert_move (to, from, unsignedp)
   rtx libcall;
 
   /* rtx code for making an equivalent value.  */
-  enum rtx_code equiv_code = (unsignedp ? ZERO_EXTEND : SIGN_EXTEND);
+  enum rtx_code equiv_code = (unsignedp < 0 ? UNKNOWN
+                             : (unsignedp ? ZERO_EXTEND : SIGN_EXTEND));
 
   to = protect_from_queue (to, 1);
   from = protect_from_queue (from, 0);