Changes in src/AST/Decl.hpp [3606fe4:b0d9ff7]
- File:
-
- 1 edited
-
src/AST/Decl.hpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Decl.hpp
r3606fe4 rb0d9ff7 108 108 ObjectDecl( const CodeLocation & loc, const std::string & name, const Type * type, 109 109 const Init * init = nullptr, Storage::Classes storage = {}, 110 Linkage::Spec linkage = Linkage::C forall, const Expr * bitWd = nullptr,110 Linkage::Spec linkage = Linkage::C, const Expr * bitWd = nullptr, 111 111 std::vector< ptr<Attribute> > && attrs = {}, Function::Specs fs = {} ) 112 112 : DeclWithType( loc, name, storage, linkage, std::move(attrs), fs ), type( type ), … … 143 143 FunctionDecl( const CodeLocation & loc, const std::string & name, std::vector<ptr<TypeDecl>>&& forall, 144 144 std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns, 145 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C forall,145 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C, 146 146 std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false); 147 147 … … 149 149 std::vector<ptr<TypeDecl>>&& forall, std::vector<ptr<DeclWithType>>&& assertions, 150 150 std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns, 151 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C forall,151 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C, 152 152 std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false); 153 153 … … 217 217 218 218 /// convenience accessor to match Type::isComplete() 219 bool isComplete() const{ return sized; }219 bool isComplete() { return sized; } 220 220 221 221 const Decl * accept( Visitor & v ) const override { return v.visit( this ); } … … 312 312 class EnumDecl final : public AggregateDecl { 313 313 public: 314 bool isTyped; 314 315 ptr<Type> base; 315 316 316 EnumDecl( const CodeLocation& loc, const std::string& name, 317 std::vector<ptr<Attribute>>&& attrs = {}, Linkage::Spec linkage = Linkage::Cforall, Type const * base = nullptr, 317 EnumDecl( const CodeLocation& loc, const std::string& name, bool isTyped = false, 318 std::vector<ptr<Attribute>>&& attrs = {}, Linkage::Spec linkage = Linkage::Cforall, 319 Type const * base = nullptr, 318 320 std::unordered_map< std::string, long long > enumValues = std::unordered_map< std::string, long long >() ) 319 : AggregateDecl( loc, name, std::move(attrs), linkage ), base(base), enumValues(enumValues) {}321 : AggregateDecl( loc, name, std::move(attrs), linkage ), isTyped(isTyped), base(base), enumValues(enumValues) {} 320 322 321 323 /// gets the integer value for this enumerator, returning true iff value found … … 327 329 const char * typeString() const override { return aggrString( Enum ); } 328 330 329 bool isTyped() {return base && base.get();}330 331 331 332 private:
Note:
See TracChangeset
for help on using the changeset viewer.