* c-exp.y: Remove never-used (because of shift/reduce conflicts)
authorJim Kingdon <jkingdon@engr.sgi.com>
Mon, 18 Oct 1993 18:01:51 +0000 (18:01 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Mon, 18 Oct 1993 18:01:51 +0000 (18:01 +0000)
rules for pointers to members.
* Makefile.in: Remove notice about expected shift/reduce conflicts.

gdb/ChangeLog
gdb/Makefile.in
gdb/c-exp.y

index c982c91b3de0a9a10139ecede411c3fadc35f60d..1565ac4684784cfdbf9c82acb29f14ee34fa6ca5 100644 (file)
@@ -1,5 +1,9 @@
 Mon Oct 18 10:28:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
+       * c-exp.y: Remove never-used (because of shift/reduce conflicts)
+       rules for pointers to members.
+       * Makefile.in: Remove notice about expected shift/reduce conflicts.
+
        * buildsym.c (finish_block): If we pop the context stack and it is
        not empty, complain () instead of abort ().
 
index 1abded177d9009ee57d682210ad43ea967ff93fc..5a18d4a4f43cf8ff68d13c3be7356c5c6bbf3f51 100644 (file)
@@ -718,7 +718,6 @@ version.c: Makefile
 # else.
 c-exp.tab.o: c-exp.tab.c
 c-exp.tab.c: c-exp.y Makefile.in
-       @echo 'Expect 4 shift/reduce conflicts.'
        $(YACC) $(YFLAGS) $(srcdir)/c-exp.y
        -sed -e '/extern.*malloc/d' \
             -e '/extern.*realloc/d' \
index 0e7d39ac6c2f69b6ee2b3c1585005ef3a4dbf7f5..65f7537958c0741fb6041dcd8498828eda46c8fd 100644 (file)
@@ -722,15 +722,12 @@ variable: name_not_typename
        ;
 
 
-/* shift/reduce conflict: "typebase ." and the token is '('.  (Shows up
-   twice, once where qualified_name is a possibility and once where
-   it is not).  */
-/* shift/reduce conflict: "typebase CONST_KEYWORD ." and the token is '('.  */
-/* shift/reduce conflict: "typebase VOLATILE_KEYWORD ." and the token is
-   '('.  */
 ptype  :       typebase
        /* "const" and "volatile" are curently ignored.  A type qualifier
-          before the type is currently handled in the typebase rule.  */
+          before the type is currently handled in the typebase rule.
+          The reason for recognizing these here (shift/reduce conflicts)
+          might be obsolete now that some pointer to member rules have
+          been deleted.  */
        |       typebase CONST_KEYWORD
        |       typebase VOLATILE_KEYWORD
        |       typebase abs_decl
@@ -766,9 +763,6 @@ direct_abs_decl: '(' abs_decl ')'
                          $$ = 0;
                        }
 
-     /* shift/reduce conflict.  "direct_abs_decl . func_mod", and the token
-       is '('.  */
-
        |       direct_abs_decl func_mod
                        { push_type (tp_function); }
        |       func_mod
@@ -787,20 +781,17 @@ func_mod: '(' ')'
                        { free ((PTR)$2); $$ = 0; }
        ;
 
-/* shift/reduce conflict: "type '(' typebase COLONCOLON '*' ')' ." and the
-   token is '('.  */
+/* We used to try to recognize more pointer to member types here, but
+   that didn't work (shift/reduce conflicts meant that these rules never
+   got executed).  The problem is that
+     int (foo::bar::baz::bizzle)
+   is a function type but
+     int (foo::bar::baz::bizzle::*)
+   is a pointer to member type.  Stroustrup loses again!  */
+
 type   :       ptype
        |       typebase COLONCOLON '*'
                        { $$ = lookup_member_type (builtin_type_int, $1); }
-       |       type '(' typebase COLONCOLON '*' ')'
-                       { $$ = lookup_member_type ($1, $3); }
-       |       type '(' typebase COLONCOLON '*' ')' '(' ')'
-                       { $$ = lookup_member_type
-                           (lookup_function_type ($1), $3); }
-       |       type '(' typebase COLONCOLON '*' ')' '(' nonempty_typelist ')'
-                       { $$ = lookup_member_type
-                           (lookup_function_type ($1), $3);
-                         free ((PTR)$8); }
        ;
 
 typebase  /* Implements (approximately): (type-qualifier)* type-specifier */