Changes in src/Parser/parser.yy [dea36ee:f7e4db27]
- File:
-
- 1 edited
-
src/Parser/parser.yy (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
rdea36ee rf7e4db27 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 19 22:21:56 201813 // Update Count : 38 2712 // Last Modified On : Fri Jul 20 11:46:46 2018 13 // Update Count : 3837 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 } // if 183 fieldList = DeclarationNode::newName( nullptr ); 184 } // if 185 return distAttr( typeSpec, fieldList ); // mark all fields in list 186 } // fieldDecl 174 187 175 188 bool forall = false, yyy = false; // aggregate have one or more forall qualifiers ? … … 1942 1955 field_declaration: 1943 1956 type_specifier field_declaring_list_opt ';' 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 } 1957 { $$ = fieldDecl( $1, $2 ); } 1953 1958 | EXTENSION type_specifier field_declaring_list_opt ';' // GCC 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 } 1959 { $$ = fieldDecl( $2, $3 ); distExt( $$ ); } 1964 1960 | INLINE type_specifier field_abstract_list_opt ';' // CFA 1965 1961 { … … 2009 2005 2010 2006 field_abstract: 2011 // no bit fields2007 // no bit fields 2012 2008 variable_abstract_declarator 2013 2009 ; 2014 2010 2015 2011 cfa_field_declaring_list: // CFA, new style field declaration 2012 // bit-fields are handled by C declarations 2016 2013 cfa_abstract_declarator_tuple no_attr_identifier_or_type_name 2017 2014 { $$ = $1->addName( $2 ); } … … 2021 2018 2022 2019 cfa_field_abstract_list: // CFA, new style field declaration 2020 // bit-fields are handled by C declarations 2023 2021 cfa_abstract_declarator_tuple 2024 2022 | cfa_field_abstract_list ','
Note:
See TracChangeset
for help on using the changeset viewer.