Ignore:
Timestamp:
Dec 14, 2016, 9:43:35 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
c7800bfc
Parents:
74e5a3aa
Message:

fix empty assignment_opt allocation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    r74e5a3aa ra7741435  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:14:52 2016
    13 // Update Count     : 2081
     12// Last Modified On : Wed Dec 14 21:28:22 2016
     13// Update Count     : 2090
    1414//
    1515
     
    775775                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    776776                        // statement.
    777                         $$ = $7 != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;
     777                        $$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;
    778778                }
    779779        | CHOOSE '(' comma_expression ')' case_clause           // CFA
     
    782782                {
    783783                        StatementNode *sw = new StatementNode( build_switch( $3, $8 ) );
    784                         $$ = $7 != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;
     784                        $$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;
    785785                }
    786786        ;
     
    10141014                { $$ = new ExpressionNode( $1 ); }
    10151015        | asm_clobbers_list_opt ',' string_literal
     1016                // set_last return ParseNode *
    10161017                { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); }
    10171018        ;
     
    15351536                { $$ = nullptr; }
    15361537        | field_declaration_list field_declaration
    1537                 { $$ = $1 != 0 ? $1->appendList( $2 ) : $2; }
     1538                { $$ = $1 ? $1->appendList( $2 ) : $2; }
    15381539        ;
    15391540
     
    17131714                {
    17141715                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    1715                         $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ) );
     1716                        $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr );
    17161717                }
    17171718        | declaration_specifier type_parameter_redeclarator assignment_opt
    17181719                {
    17191720                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    1720                         $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ) );
     1721                        $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr );
    17211722                }
    17221723        ;
     
    19011902                { $$ = nullptr; }
    19021903        | assertion_list_opt assertion
    1903                 { $$ = $1 != 0 ? $1->appendList( $2 ) : $2; }
     1904                { $$ = $1 ? $1->appendList( $2 ) : $2; }
    19041905        ;
    19051906
     
    20222023                {}                                                                                              // empty input file
    20232024        | external_definition_list
    2024                 { parseTree = parseTree != nullptr ? parseTree->appendList( $1 ) : $1;  }
     2025                { parseTree = parseTree ? parseTree->appendList( $1 ) : $1;     }
    20252026        ;
    20262027
     
    20282029        external_definition
    20292030        | external_definition_list push external_definition
    2030                 { $$ = $1 != nullptr ? $1->appendList( $3 ) : $3; }
     2031                { $$ = $1 ? $1->appendList( $3 ) : $3; }
    20312032        ;
    20322033
Note: See TracChangeset for help on using the changeset viewer.