Changeset dd020c0 for src/SynTree
- Timestamp:
- Mar 3, 2017, 10:12:02 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, 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:
- 8191203
- Parents:
- f37147b
- Location:
- src/SynTree
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/SynTree/Declaration.cc ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 9 14:28:05201713 // Update Count : 1 612 // Last Modified On : Wed Mar 1 20:11:57 2017 13 // Update Count : 17 14 14 // 15 15 … … 28 28 29 29 Declaration::Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage ) 30 : name( name ), storageClass( sc ), linkage( linkage ), isInline( false ), isNoreturn( false ),uniqueId( 0 ) {30 : name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) { 31 31 } 32 32 33 33 Declaration::Declaration( const Declaration &other ) 34 : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), isInline( other.isInline ), isNoreturn( other.isNoreturn ),uniqueId( other.uniqueId ) {34 : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), uniqueId( other.uniqueId ) { 35 35 } 36 36 -
TabularUnified src/SynTree/Declaration.h ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 16 14:53:35201713 // Update Count : 5712 // Last Modified On : Fri Mar 3 20:59:27 2017 13 // Update Count : 96 14 14 // 15 15 … … 38 38 LinkageSpec::Spec get_linkage() const { return linkage; } 39 39 void set_linkage( LinkageSpec::Spec newValue ) { linkage = newValue; } 40 bool get_isInline() const { return isInline; }41 void set_isInline( bool newValue ) { isInline = newValue; }42 bool get_isNoreturn() const { return isNoreturn; }43 void set_isNoreturn( bool newValue ) { isNoreturn = newValue; }44 40 UniqueId get_uniqueId() const { return uniqueId; } 45 41 bool get_extension() const { return extension; } … … 59 55 DeclarationNode::StorageClass storageClass; 60 56 LinkageSpec::Spec linkage; 61 bool isInline, isNoreturn;62 57 UniqueId uniqueId; 63 58 bool extension = false; … … 66 61 class DeclarationWithType : public Declaration { 67 62 public: 68 DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes );63 DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes, DeclarationNode::FuncSpec fs = DeclarationNode::FuncSpec() ); 69 64 DeclarationWithType( const DeclarationWithType &other ); 70 65 virtual ~DeclarationWithType(); … … 83 78 std::list< Attribute * >& get_attributes() { return attributes; } 84 79 const std::list< Attribute * >& get_attributes() const { return attributes; } 80 81 DeclarationNode::FuncSpec get_funcSpec() const { return fs; } 82 void set_functionSpecifiers( DeclarationNode::FuncSpec newValue ) { fs = newValue; } 85 83 86 84 virtual DeclarationWithType *clone() const = 0; … … 97 95 ConstantExpr *asmName; 98 96 std::list< Attribute * > attributes; 97 DeclarationNode::FuncSpec fs; 99 98 }; 100 99 … … 102 101 typedef DeclarationWithType Parent; 103 102 public: 104 ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, Expression *bitfieldWidth, Type *type, Initializer *init, const std::list< Attribute * > attributes = std::list< Attribute * >(), bool isInline = false, bool isNoreturn = false ); 103 ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, Expression *bitfieldWidth, Type *type, Initializer *init, 104 const std::list< Attribute * > attributes = std::list< Attribute * >(), DeclarationNode::FuncSpec fs = DeclarationNode::FuncSpec() ); 105 105 ObjectDecl( const ObjectDecl &other ); 106 106 virtual ~ObjectDecl(); … … 129 129 typedef DeclarationWithType Parent; 130 130 public: 131 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn, const std::list< Attribute * > attributes = std::list< Attribute * >() ); 131 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, FunctionType *type, CompoundStmt *statements, 132 const std::list< Attribute * > attributes = std::list< Attribute * >(), DeclarationNode::FuncSpec fs = DeclarationNode::FuncSpec() ); 132 133 FunctionDecl( const FunctionDecl &other ); 133 134 virtual ~FunctionDecl(); -
TabularUnified src/SynTree/DeclarationWithType.cc ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 14:49:43 201613 // Update Count : 712 // Last Modified On : Fri Mar 3 20:59:28 2017 13 // Update Count : 19 14 14 // 15 15 … … 19 19 #include "Common/utility.h" 20 20 21 DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes )22 : Declaration( name, sc, linkage ), asmName( nullptr ), attributes( attributes ) {21 DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes, DeclarationNode::FuncSpec fs ) 22 : Declaration( name, sc, linkage ), asmName( nullptr ), attributes( attributes ), fs( fs ) { 23 23 } 24 24 25 25 DeclarationWithType::DeclarationWithType( const DeclarationWithType &other ) 26 : Declaration( other ), mangleName( other.mangleName ), scopeLevel( other.scopeLevel) {26 : Declaration( other ), mangleName( other.mangleName ), scopeLevel( other.scopeLevel ), fs( other.fs ) { 27 27 cloneAll( other.attributes, attributes ); 28 28 asmName = maybeClone( other.asmName ); -
TabularUnified src/SynTree/FunctionDecl.cc ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 16 15:01:52201713 // Update Count : 2312 // Last Modified On : Fri Mar 3 21:29:41 2017 13 // Update Count : 55 14 14 // 15 15 … … 26 26 extern bool translation_unit_nomain; 27 27 28 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn, std::list< Attribute * > attributes ) 29 : Parent( name, sc, linkage, attributes ), type( type ), statements( statements ) { 30 set_isInline( isInline ); 31 set_isNoreturn( isNoreturn ); 32 // this is a brazen hack to force the function "main" to have Cforall linkage 33 // because we want to replace the main even if it is inside an extern 28 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, FunctionType *type, CompoundStmt *statements, std::list< Attribute * > attributes, DeclarationNode::FuncSpec fs ) 29 : Parent( name, sc, linkage, attributes, fs ), type( type ), statements( statements ) { 30 set_functionSpecifiers( fs ); 31 32 // hack forcing the function "main" to have Cforall linkage to replace main even if it is inside an extern 34 33 if ( name == "main" ) { 35 34 set_linkage( CodeGen::FixMain::mainLinkage() ); … … 65 64 os << LinkageSpec::linkageName( get_linkage() ) << " "; 66 65 } // if 67 if ( get_isInline() ) {68 os << "inline ";69 } // if70 if ( get_isNoreturn() ) {71 os << "_Noreturn ";72 } // if73 66 74 67 printAll( get_attributes(), os, indent ); 75 68 76 69 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 77 os << DeclarationNode::storage Name[ get_storageClass() ] << ' ';70 os << DeclarationNode::storageClassNames[ get_storageClass() ] << ' '; 78 71 } // if 72 DeclarationNode::print_FuncSpec( os, get_funcSpec() ); 73 79 74 if ( get_type() ) { 80 75 get_type()->print( os, indent ); … … 97 92 os << get_name() << ": "; 98 93 } // if 99 if ( get_isInline() ) {100 os << "inline ";101 } // if102 if ( get_isNoreturn() ) {103 os << "_Noreturn ";104 } // if105 94 106 95 // xxx - should printShort print attributes? 107 96 108 97 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 109 os << DeclarationNode::storage Name[ get_storageClass() ] << ' ';98 os << DeclarationNode::storageClassNames[ get_storageClass() ] << ' '; 110 99 } // if 100 DeclarationNode::print_FuncSpec( os, get_funcSpec() ); 101 111 102 if ( get_type() ) { 112 103 get_type()->print( os, indent ); -
TabularUnified src/SynTree/NamedTypeDecl.cc ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 08:13:55 201513 // Update Count : 312 // Last Modified On : Tue Feb 28 16:13:24 2017 13 // Update Count : 4 14 14 // 15 15 … … 40 40 } // if 41 41 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 42 os << DeclarationNode::storage Name[ get_storageClass() ] << ' ';42 os << DeclarationNode::storageClassNames[ get_storageClass() ] << ' '; 43 43 } // if 44 44 os << typeString(); … … 64 64 } // if 65 65 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 66 os << DeclarationNode::storage Name[ get_storageClass() ] << ' ';66 os << DeclarationNode::storageClassNames[ get_storageClass() ] << ' '; 67 67 } // if 68 68 os << typeString(); -
TabularUnified src/SynTree/ObjectDecl.cc ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 1 23:05:56 201613 // Update Count : 3212 // Last Modified On : Fri Mar 3 20:59:27 2017 13 // Update Count : 45 14 14 // 15 15 … … 22 22 #include "Statement.h" 23 23 24 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, Expression *bitfieldWidth, Type *type, Initializer *init, const std::list< Attribute * > attributes, bool isInline, bool isNoreturn ) 25 : Parent( name, sc, linkage, attributes ), type( type ), init( init ), bitfieldWidth( bitfieldWidth ) { 26 set_isInline( isInline ); 27 set_isNoreturn( isNoreturn ); 24 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, Expression *bitfieldWidth, Type *type, Initializer *init, const std::list< Attribute * > attributes, DeclarationNode::FuncSpec fs ) 25 : Parent( name, sc, linkage, attributes, fs ), type( type ), init( init ), bitfieldWidth( bitfieldWidth ) { 26 set_functionSpecifiers( fs ); 28 27 } 29 28 … … 50 49 51 50 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 52 os << DeclarationNode::storage Name[ get_storageClass() ] << ' ';51 os << DeclarationNode::storageClassNames[ get_storageClass() ] << ' '; 53 52 } // if 54 53 … … 86 85 87 86 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 88 os << DeclarationNode::storage Name[ get_storageClass() ] << ' ';87 os << DeclarationNode::storageClassNames[ get_storageClass() ] << ' '; 89 88 } // if 90 89 -
TabularUnified src/SynTree/Type.h ¶
rf37147b rdd020c0 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 23 16:38:53201713 // Update Count : 3412 // Last Modified On : Wed Mar 1 09:11:45 2017 13 // Update Count : 41 14 14 // 15 15 … … 21 21 #include "SynTree.h" 22 22 #include "Visitor.h" 23 #include "Common/utility.h"24 23 25 24 class Type : public BaseSyntaxNode { … … 213 212 bool get_isVarArgs() const { return isVarArgs; } 214 213 void set_isVarArgs( bool newValue ) { isVarArgs = newValue; } 215 216 214 bool isTtype() const; 217 215
Note: See TracChangeset
for help on using the changeset viewer.