Changes in src/Parser/parser.yy [f7e4db27:dea36ee]
- File:
-
- 1 edited
-
src/Parser/parser.yy (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
rf7e4db27 rdea36ee 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 20 11:46:46 201813 // Update Count : 38 3712 // Last Modified On : Thu Jul 19 22:21:56 2018 13 // Update Count : 3827 14 14 // 15 15 … … 172 172 return new_name; 173 173 } // build_postfix_name 174 175 DeclarationNode * fieldDecl( DeclarationNode * typeSpec, DeclarationNode * fieldList ) {176 if ( ! fieldList ) { // field declarator ?177 if ( ! ( typeSpec->type && typeSpec->type->kind == TypeData::Aggregate ) ) {178 stringstream ss;179 typeSpec->type->print( ss );180 SemanticWarning( yylloc, Warning::SuperfluousDecl, ss.str().c_str() );181 return nullptr;182 } // if183 fieldList = DeclarationNode::newName( nullptr );184 } // if185 return distAttr( typeSpec, fieldList ); // mark all fields in list186 } // fieldDecl187 174 188 175 bool forall = false, yyy = false; // aggregate have one or more forall qualifiers ? … … 1955 1942 field_declaration: 1956 1943 type_specifier field_declaring_list_opt ';' 1957 { $$ = fieldDecl( $1, $2 ); } 1944 { 1945 if ( ! $2 ) { // field declarator ? 1946 $2 = DeclarationNode::newName( nullptr ); 1947 if ( ! ( $1->type && $1->type->kind == TypeData::Aggregate ) ) { 1948 SemanticWarning( yylloc, Warning::SuperfluousDecl, "" ); 1949 } // if 1950 } // if 1951 $$ = distAttr( $1, $2 ); // mark all fields in list 1952 } 1958 1953 | EXTENSION type_specifier field_declaring_list_opt ';' // GCC 1959 { $$ = fieldDecl( $2, $3 ); distExt( $$ ); } 1954 { 1955 if ( ! $3 ) { // field declarator ? 1956 $3 = DeclarationNode::newName( nullptr ); 1957 if ( ! ( $2->type && $2->type->kind == TypeData::Aggregate ) ) { 1958 SemanticWarning( yylloc, Warning::SuperfluousDecl, "" ); 1959 } // if 1960 } // if 1961 $$ = distAttr( $2, $3 ); // mark all fields in list 1962 distExt( $$ ); 1963 } 1960 1964 | INLINE type_specifier field_abstract_list_opt ';' // CFA 1961 1965 { … … 2005 2009 2006 2010 field_abstract: 2007 // no bit fields2011 // no bit fields 2008 2012 variable_abstract_declarator 2009 2013 ; 2010 2014 2011 2015 cfa_field_declaring_list: // CFA, new style field declaration 2012 // bit-fields are handled by C declarations2013 2016 cfa_abstract_declarator_tuple no_attr_identifier_or_type_name 2014 2017 { $$ = $1->addName( $2 ); } … … 2018 2021 2019 2022 cfa_field_abstract_list: // CFA, new style field declaration 2020 // bit-fields are handled by C declarations2021 2023 cfa_abstract_declarator_tuple 2022 2024 | cfa_field_abstract_list ','
Note:
See TracChangeset
for help on using the changeset viewer.