Changeset 5e644d3e for src/Parser/DeclarationNode.cc
- Timestamp:
- Aug 29, 2016, 11:02:37 AM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, 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:
- 46f6134
- Parents:
- 1e8b02f5 (diff), 6943a987 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r1e8b02f5 r5e644d3e 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 25 20:42:25201613 // Update Count : 2 3212 // Last Modified On : Sun Aug 28 22:12:44 2016 13 // Update Count : 278 14 14 // 15 15 … … 375 375 } 376 376 377 void DeclarationNode::checkQualifiers( TypeData *src,TypeData *dst ) {377 void DeclarationNode::checkQualifiers( const TypeData *src, const TypeData *dst ) { 378 378 TypeData::Qualifiers qsrc = src->qualifiers, qdst = dst->qualifiers; 379 379 … … 801 801 DeclarationNode *DeclarationNode::extractAggregate() const { 802 802 if ( type ) { 803 TypeData *ret = type ->extractAggregate();803 TypeData *ret = typeextractAggregate( type ); 804 804 if ( ret ) { 805 805 DeclarationNode *newnode = new DeclarationNode; … … 896 896 if ( ! error.empty() ) throw SemanticError( error, this ); 897 897 if ( type ) { 898 return type->buildDecl(name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );898 return buildDecl( type, name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 899 899 } // if 900 900 if ( ! isInline && ! isNoreturn ) { … … 909 909 switch ( type->kind ) { 910 910 case TypeData::Enum: 911 return new EnumInstType( type->buildQualifiers(), type->enumeration->name );911 return new EnumInstType( buildQualifiers( type ), type->enumeration->name ); 912 912 case TypeData::Aggregate: { 913 913 ReferenceToType *ret; 914 914 switch ( type->aggregate->kind ) { 915 915 case DeclarationNode::Struct: 916 ret = new StructInstType( type->buildQualifiers(), type->aggregate->name );916 ret = new StructInstType( buildQualifiers( type ), type->aggregate->name ); 917 917 break; 918 918 case DeclarationNode::Union: 919 ret = new UnionInstType( type->buildQualifiers(), type->aggregate->name );919 ret = new UnionInstType( buildQualifiers( type ), type->aggregate->name ); 920 920 break; 921 921 case DeclarationNode::Trait: 922 ret = new TraitInstType( type->buildQualifiers(), type->aggregate->name );922 ret = new TraitInstType( buildQualifiers( type ), type->aggregate->name ); 923 923 break; 924 924 default: … … 929 929 } 930 930 case TypeData::Symbolic: { 931 TypeInstType *ret = new TypeInstType( type->buildQualifiers(), type->symbolic->name, false );931 TypeInstType *ret = new TypeInstType( buildQualifiers( type ), type->symbolic->name, false ); 932 932 buildList( type->symbolic->actuals, ret->get_parameters() ); 933 933 return ret; 934 934 } 935 935 default: 936 return type ->build();936 return typebuild( type ); 937 937 } // switch 938 938 }
Note: See TracChangeset
for help on using the changeset viewer.