Changes in src/Parser/DeclarationNode.cc [f14d956:68f9c43]
- File:
-
- 1 edited
-
src/Parser/DeclarationNode.cc (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
rf14d956 r68f9c43 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 20 22:37:20201813 // Update Count : 10 6312 // Last Modified On : Thu Feb 22 15:37:17 2018 13 // Update Count : 1033 14 14 // 15 15 … … 47 47 const char * DeclarationNode::aggregateNames[] = { "struct", "union", "trait", "coroutine", "monitor", "thread", "NoAggregateNames" }; 48 48 const char * DeclarationNode::typeClassNames[] = { "otype", "dtype", "ftype", "NoTypeClassNames" }; 49 const char * DeclarationNode::builtinTypeNames[] = { "__builtin_va_list", " zero_t", "one_t", "NoBuiltinTypeNames" };49 const char * DeclarationNode::builtinTypeNames[] = { "__builtin_va_list", "NoBuiltinTypeNames" }; 50 50 51 51 UniqueName DeclarationNode::anonymous( "__anonymous" ); … … 71 71 attr.expr = nullptr; 72 72 attr.type = nullptr; 73 74 assert.condition = nullptr;75 assert.message = nullptr;76 73 } 77 74 … … 91 88 // asmName, no delete, passed to next stage 92 89 delete initializer; 93 94 delete assert.condition;95 delete assert.message;96 90 } 97 91 … … 123 117 newnode->attr.expr = maybeClone( attr.expr ); 124 118 newnode->attr.type = maybeClone( attr.type ); 125 126 newnode->assert.condition = maybeClone( assert.condition );127 newnode->assert.message = maybeClone( assert.message );128 119 return newnode; 129 120 } // DeclarationNode::clone … … 443 434 return newnode; 444 435 } 445 446 DeclarationNode * DeclarationNode::newStaticAssert( ExpressionNode * condition, Expression * message ) {447 DeclarationNode * newnode = new DeclarationNode;448 newnode->assert.condition = condition;449 newnode->assert.message = message;450 return newnode;451 }452 453 436 454 437 void appendError( string & dst, const string & src ) { … … 561 544 562 545 checkQualifiers( type, q->type ); 563 if ( (builtin == Zero || builtin == One) && error.length() == 0 ) {564 SemanticWarning( yylloc, Warning::BadQualifiersZeroOne, Type::QualifiersNames[ilog2( q->type->qualifiers.val )], builtinTypeNames[builtin] );565 // appendError( error, string( "questionable qualifiers" ) );566 } // if567 546 addQualifiersToType( q->type, type ); 568 547 … … 928 907 delete newType->aggInst.aggregate->enumeration.constants; 929 908 newType->aggInst.aggregate->enumeration.constants = nullptr; 930 newType->aggInst.aggregate->enumeration.body = false;931 909 } else { 932 910 assert( newType->aggInst.aggregate->kind == TypeData::Aggregate ); 933 911 delete newType->aggInst.aggregate->aggregate.fields; 934 912 newType->aggInst.aggregate->aggregate.fields = nullptr; 935 newType->aggInst.aggregate->aggregate.body = false;936 913 } // if 937 914 // don't hoist twice … … 1009 986 obj->location = cur->location; 1010 987 * out++ = obj; 1011 delete agg;1012 988 } else if ( UnionDecl * agg = dynamic_cast< UnionDecl * >( decl ) ) { 1013 989 UnionInstType * inst = new UnionInstType( Type::Qualifiers(), agg->get_name() ); … … 1074 1050 return buildDecl( type, name ? *name : string( "" ), storageClasses, maybeBuild< Expression >( bitfieldWidth ), funcSpecs, linkage, asmName, maybeBuild< Initializer >(initializer), attributes )->set_extension( extension ); 1075 1051 } // if 1076 1077 if ( assert.condition ) {1078 return new StaticAssertDecl( maybeBuild< Expression >( assert.condition ), strict_dynamic_cast< ConstantExpr * >( maybeClone( assert.message ) ) );1079 }1080 1052 1081 1053 // SUE's cannot have function specifiers, either
Note:
See TracChangeset
for help on using the changeset viewer.