schmidt%crimee.ics.uci.edu@PARIS.ICS.UCI.EDU ("Douglas C. Schmidt") (01/19/89)
Hi,
There is currently a bug in the g++ 1.32 cplus-parse.y file.
It causes a segmentation fault with the following construct:
----------------------------------------
main () {
int j = ({1;});
}
----------------------------------------
I've found the problem with this, and included the patches
for cplus-parse.y below.
Doug
----------------------------------------
*** cplus-parse.y.~1~ Thu Jan 19 02:24:22 1989
--- cplus-parse.y Thu Jan 19 02:21:14 1989
***************
*** 641,647 ****
compstmt ')'
{ if (pedantic)
warning ("ANSI C forbids braced-groups within expressions");
! expand_end_stmt_expr ($<ttype>2); }
| primary '(' exprlist ')'
{ $$ = build_x_function_call ($1, $3, current_class_decl); }
| primary '[' expr ']'
--- 641,647 ----
compstmt ')'
{ if (pedantic)
warning ("ANSI C forbids braced-groups within expressions");
! $$ = expand_end_stmt_expr ($<ttype>2); }
| primary '(' exprlist ')'
{ $$ = build_x_function_call ($1, $3, current_class_decl); }
| primary '[' expr ']'
***************
*** 953,959 ****
compstmt ')'
{ if (pedantic)
warning ("ANSI C forbids braced-groups within expressions");
! expand_end_stmt_expr ($<ttype>2); }
| primary_no_id '(' exprlist ')'
{ $$ = build_x_function_call ($1, $3, current_class_decl); }
| primary_no_id '[' expr ']'
--- 953,959 ----
compstmt ')'
{ if (pedantic)
warning ("ANSI C forbids braced-groups within expressions");
! $$ = expand_end_stmt_expr ($<ttype>2); }
| primary_no_id '(' exprlist ')'
{ $$ = build_x_function_call ($1, $3, current_class_decl); }
| primary_no_id '[' expr ']'