OSDN Git Service

* tree.c (initializer_zerop): Handle STRING_CST.
authormkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 May 2010 10:28:46 +0000 (10:28 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:00:42 +0000 (14:00 +0900)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159103 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree.c

index fff9626..620ef3d 100644 (file)
@@ -1,3 +1,7 @@
+2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * tree.c (initializer_zerop): Handle STRING_CST.
+
 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        PR 40989
index b9eeb3d..c45e807 100644 (file)
@@ -9414,6 +9414,19 @@ initializer_zerop (const_tree init)
        return true;
       }
 
+    case STRING_CST:
+      {
+       int i;
+
+       /* We need to loop through all elements to handle cases like
+          "\0" and "\0foobar".  */
+       for (i = 0; i < TREE_STRING_LENGTH (init); ++i)
+         if (TREE_STRING_POINTER (init)[i] != '\0')
+           return false;
+
+       return true;
+      }
+
     default:
       return false;
     }