Changeset 2c04369 for src/SymTab/Validate.cc
- Timestamp:
- May 28, 2019, 12:04:43 PM (3 years ago)
- Branches:
- arm-eh, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
- Children:
- 0d70e0d
- Parents:
- a7d50b6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
ra7d50b6 r2c04369 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:50:04 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon Aug 28 13:47:23 201713 // Update Count : 3 5911 // Last Modified By : Andrew Beach 12 // Last Modified On : Tue May 28 11:07:00 2019 13 // Update Count : 360 14 14 // 15 15 … … 288 288 }; 289 289 290 FunctionDecl * dereferenceOperator = nullptr;291 struct FindSpecialDeclarations final {292 void previsit( FunctionDecl * funcDecl );293 };294 295 290 void validate( std::list< Declaration * > &translationUnit, __attribute__((unused)) bool doDebug ) { 296 291 PassVisitor<EnumAndPointerDecay> epc; … … 299 294 PassVisitor<CompoundLiteral> compoundliteral; 300 295 PassVisitor<ValidateGenericParameters> genericParams; 301 PassVisitor<FindSpecialDeclarations> finder;302 296 PassVisitor<LabelAddressFixer> labelAddrFixer; 303 297 PassVisitor<HoistTypeDecls> hoistDecls; … … 376 370 Stats::Time::TimeBlock("Array Length", [&]() { 377 371 ArrayLength::computeLength( translationUnit ); 378 });379 Stats::Time::TimeBlock("Find Special Declarations", [&]() {380 acceptAll( translationUnit, finder ); // xxx - remove this pass soon381 372 }); 382 373 Stats::Time::TimeBlock("Fix Label Address", [&]() { … … 1372 1363 return addrExpr; 1373 1364 } 1374 1375 void FindSpecialDeclarations::previsit( FunctionDecl * funcDecl ) {1376 if ( ! dereferenceOperator ) {1377 if ( funcDecl->get_name() == "*?" && funcDecl->get_linkage() == LinkageSpec::Intrinsic ) {1378 FunctionType * ftype = funcDecl->get_functionType();1379 if ( ftype->get_parameters().size() == 1 && ftype->get_parameters().front()->get_type()->get_qualifiers() == Type::Qualifiers() ) {1380 dereferenceOperator = funcDecl;1381 }1382 }1383 }1384 }1385 1365 } // namespace SymTab 1386 1366
Note: See TracChangeset
for help on using the changeset viewer.