i386.c (ix86_decompose_address): If operand isn't UNSPEC, return 0.
authorJakub Jelinek <jakub@redhat.com>
Tue, 20 Mar 2012 11:18:06 +0000 (12:18 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 20 Mar 2012 11:18:06 +0000 (12:18 +0100)
* config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
If operand isn't UNSPEC, return 0.

From-SVN: r185568

gcc/ChangeLog
gcc/config/i386/i386.c

index b9378eab93d1d4ab248320a09329c6f6367307ba..d2dcbe51257e02b5eab0eca000378d6c0f2ef479 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-20  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
+       If operand isn't UNSPEC, return 0.
+
 2012-03-20  Richard Guenther  <rguenther@suse.de>
 
        * tree-pass.h (pass_rtl_eh): Remove.
index cf673fd25d4391fdd9f23f6d0beae4382bf2188f..2410236b93bc6b5225bfbc0faa8bfed5269d7ac8 100644 (file)
@@ -11516,6 +11516,8 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
 
            case ZERO_EXTEND:
              op = XEXP (op, 0);
+             if (GET_CODE (op) != UNSPEC)
+               return 0;
              /* FALLTHRU */
 
            case UNSPEC: