Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    r7991c7d rd8454b9  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul  1 15:35:08 2022
    13 // Update Count     : 5405
     12// Last Modified On : Sat May 14 09:16:22 2022
     13// Update Count     : 5401
    1414//
    1515
     
    5656
    5757#include "SynTree/Attribute.h"     // for Attribute
    58 
    59 // lex uses __null in a boolean context, it's fine.
    60 #pragma GCC diagnostic ignored "-Wparentheses-equality"
    6158
    6259extern DeclarationNode * parseTree;
     
    12431240                {
    12441241                        $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) );
    1245                         SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
     1242                        SemanticWarning( yylloc, Warning::SuperfluousElse );
    12461243                }
    12471244        | WHILE '(' conditional_declaration ')' statement       %prec THEN
     
    12541251                {
    12551252                        $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) );
    1256                         SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
     1253                        SemanticWarning( yylloc, Warning::SuperfluousElse );
    12571254                }
    12581255        | DO statement WHILE '(' comma_expression ')' ';'
     
    12651262                {
    12661263                        $$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), maybe_build_compound( $4 ) ) );
    1267                         SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
     1264                        SemanticWarning( yylloc, Warning::SuperfluousElse );
    12681265                }
    12691266        | FOR '(' for_control_expression_list ')' statement     %prec THEN
     
    23972394        | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '{' enumerator_list comma_opt '}'
    23982395                {
    2399                         if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 )
     2396                        if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 ) 
    24002397                        { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
    24012398
     
    24412438        // empty
    24422439                { $$ = nullptr; }
    2443         | '=' constant_expression                                       { $$ = new InitializerNode( $2 ); }
    2444         | '=' '{' initializer_list_opt comma_opt '}' { $$ = new InitializerNode( $3, true ); }
    2445         // | simple_assignment_operator initializer
    2446         //      { $$ = $1 == OperKinds::Assign ? $2 : $2->set_maybeConstructed( false ); }
     2440        // | '=' constant_expression
     2441        //      { $$ = $2; }
     2442        | simple_assignment_operator initializer
     2443                { $$ = $1 == OperKinds::Assign ? $2 : $2->set_maybeConstructed( false ); }
    24472444        ;
    24482445
     
    28442841                        linkage = LinkageSpec::update( yylloc, linkage, $2 );
    28452842                }
    2846           up external_definition down
     2843          up external_definition down 
    28472844                {
    28482845                        linkage = linkageStack.top();
Note: See TracChangeset for help on using the changeset viewer.