* tree.c (initializer_zerop): Handle STRING_CST.
authorMaxim Kuvyrkov <maxim@codesourcery.com>
Thu, 6 May 2010 10:28:46 +0000 (10:28 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Thu, 6 May 2010 10:28:46 +0000 (10:28 +0000)
From-SVN: r159103

gcc/ChangeLog
gcc/tree.c

index fff96268288dabd2efe91e8cba24ed2fd970be75..620ef3d2dcd7b5fb5df9e791bfe4980b017ab670 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 b9eeb3d9693daefc0d2790493f6b41951efc9bbb..c45e807b43d96dd46932a43540a1a65d3c8d8bf1 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;
     }