gengtype: Ignore access-control keywords when parsing fields
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Oct 2013 15:25:23 +0000 (15:25 +0000)
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Oct 2013 15:25:23 +0000 (15:25 +0000)
* gengtype-parse.c (struct_field_seq): Ignore access-control
keywords ("public:" etc).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203708 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gengtype-parse.c

index 6fad912..c1617d4 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-16  David Malcolm  <dmalcolm@redhat.com>
+
+       * gengtype-parse.c (struct_field_seq): Ignore access-control
+       keywords ("public:" etc).
+
 2013-10-16  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
        * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
index 68d372e..e5204c1 100644 (file)
@@ -733,6 +733,17 @@ struct_field_seq (void)
     {
       ty = type (&opts, true);
 
+      /* Ignore access-control keywords ("public:" etc).  */
+      while (!ty && token () == IGNORABLE_CXX_KEYWORD)
+       {
+         const char *keyword = advance ();
+         if (strcmp (keyword, "public:") != 0
+             && strcmp (keyword, "private:") != 0
+             && strcmp (keyword, "protected:") != 0)
+           break;
+         ty = type (&opts, true);
+       }
+
       if (!ty || token () == ':')
        {
          consume_until_eos ();