Changeset 11df881 for src/Validate
- Timestamp:
- Jul 20, 2022, 11:42:29 AM (22 months ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- b585593
- Parents:
- 0577df2
- Location:
- src/Validate
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Validate/Autogen.hpp
r0577df2 r11df881 22 22 namespace Validate { 23 23 24 /// Generate routines for all data types in the translation unit. 25 /// A lot of passes have to happen either before or after this pass. 24 26 void autogenerateRoutines( ast::TranslationUnit & translationUnit ); 25 27 -
src/Validate/CompoundLiteral.hpp
r0577df2 r11df881 23 23 24 24 /// Use variables to implement compound literals. 25 /// Must happen after auto-gen routines are added. 25 26 void handleCompoundLiterals( ast::TranslationUnit & translationUnit ); 26 27 -
src/Validate/EnumAndPointerDecay.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // EnumAndPointerDecay.cpp -- 7 // EnumAndPointerDecay.cpp -- Normalizes enumerations and types in functions. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/EnumAndPointerDecay.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // EnumAndPointerDecay.hpp -- 7 // EnumAndPointerDecay.hpp -- Normalizes enumerations and types in functions. 8 8 // 9 9 // Author : Andrew Beach … … 22 22 namespace Validate { 23 23 24 /// Fix the parameter and return types of functions. Also assigns types to 25 /// enumeration values. This must happen before Link Reference to Types, 26 /// it needs correct types for mangling, and before auto-gen. 24 27 void decayEnumsAndPointers( ast::TranslationUnit & translationUnit ); 25 28 -
src/Validate/FindSpecialDecls.h
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FindSpecialDeclarations.h -- 7 // FindSpecialDeclarations.h -- Find special declarations used in the compiler. 8 8 // 9 9 // Author : Rob Schluntz … … 43 43 void findSpecialDecls( std::list< Declaration * > & translationUnit ); 44 44 45 /// find and remember some of the special declarations that are useful for45 /// Find and remember some of the special declarations that are useful for 46 46 /// generating code, so that they do not have to be discovered multiple times. 47 47 void findGlobalDecls( ast::TranslationUnit & translationUnit ); -
src/Validate/FixQualifiedTypes.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FixQualifiedTypes.cpp -- 7 // FixQualifiedTypes.cpp -- Replace the qualified type with a direct type. 8 8 // 9 9 // Author : Andrew Beach … … 76 76 ret->qualifiers = type->qualifiers; 77 77 ast::TypeSubstitution sub( aggr->params, instp->params ); 78 // = parent->genericSubstitution();79 78 auto result = sub.apply(ret); 80 79 return result.node.release(); -
src/Validate/FixQualifiedTypes.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FixQualifiedTypes.hpp -- 7 // FixQualifiedTypes.hpp -- Replace the qualified type with a direct type. 8 8 // 9 9 // Author : Andrew Beach … … 22 22 namespace Validate { 23 23 24 /// Replaces qualified types with an unqualified NamedTypeDecl. 25 /// Must happen after Link References To Types, 26 /// because aggregate members are accessed. 24 27 void fixQualifiedTypes( ast::TranslationUnit & translationUnit ); 25 28 -
src/Validate/FixReturnTypes.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FixReturnTypes.cpp -- 7 // FixReturnTypes.cpp -- Unifies the representation of return types. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/FixReturnTypes.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FixReturnTypes.hpp -- 7 // FixReturnTypes.hpp -- Unifies the representation of return types. 8 8 // 9 9 // Author : Andrew Beach … … 22 22 namespace Validate { 23 23 24 // This pass needs to happen early so that other passes can find tuple types 25 // in the right places, especially for function return types. 24 /// This pass needs to happen early so that other passes can find tuple types 25 /// in the right places, especially for function return types. 26 /// Must happen before auto-gen. 26 27 void fixReturnTypes( ast::TranslationUnit & translationUnit ); 27 28 -
src/Validate/ForallPointerDecay.hpp
r0577df2 r11df881 29 29 /// Also checks that operator names are used properly on functions and 30 30 /// assigns unique IDs. This is a "legacy" pass. 31 /// Must be after implement concurrent keywords; because uniqueIds must be 32 /// set on declaration before resolution. 33 /// Must happen before auto-gen routines are added. 31 34 void decayForallPointers( ast::TranslationUnit & transUnit ); 32 35 -
src/Validate/GenericParameter.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // GenericParameter.hpp -- 7 // GenericParameter.hpp -- Generic parameter related passes. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/GenericParameter.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // GenericParameter.hpp -- 7 // GenericParameter.hpp -- Generic parameter related passes. 8 8 // 9 9 // Author : Andrew Beach … … 23 23 24 24 /// Perform substutions for generic parameters and fill in defaults. 25 /// Check as early as possible, but it can't happen before Link References to 26 /// Types and observed failing when attempted before eliminate typedef. 25 27 void fillGenericParameters( ast::TranslationUnit & translationUnit ); 26 28 -
src/Validate/HoistStruct.hpp
r0577df2 r11df881 22 22 namespace Validate { 23 23 24 /// Flattens nested type declarations. 24 /// Flattens nested type declarations. (Run right after Fix Qualified Types.) 25 25 void hoistStruct( ast::TranslationUnit & translationUnit ); 26 26 -
src/Validate/HoistTypeDecls.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // HoistTypeDecls.cpp -- 7 // HoistTypeDecls.cpp -- Hoists declarations of implicitly declared types. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/HoistTypeDecls.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // HoistTypeDecls.hpp -- 7 // HoistTypeDecls.hpp -- Hoists declarations of implicitly declared types. 8 8 // 9 9 // Author : Andrew Beach … … 22 22 namespace Validate { 23 23 24 /// There are some places where a type can be declared but are usually only 25 /// referenced (with an *InstType). This inserts the declarations before 26 /// they are referenced. 24 27 void hoistTypeDecls( ast::TranslationUnit & translationUnit ); 25 28 -
src/Validate/LabelAddressFixer.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelAddressFixer.cpp -- 7 // LabelAddressFixer.cpp -- Create label address expressions. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/LabelAddressFixer.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelAddressFixer.hpp -- 7 // LabelAddressFixer.hpp -- Create label address expressions. 8 8 // 9 9 // Author : Andrew Beach … … 20 20 namespace Validate { 21 21 22 /// Label addresses are not actually created in the parser, this pass finds 23 /// the patterns that represent the label address expression. 22 24 void fixLabelAddresses( ast::TranslationUnit & translationUnit ); 23 25 -
src/Validate/LinkReferenceToTypes.hpp
r0577df2 r11df881 22 22 namespace Validate { 23 23 24 /// Fills in the base value of various instance types, and some related 25 /// adjustments, such as setting the sized flag. 26 /// Because of the sized flag, it must happen before auto-gen. 24 27 void linkReferenceToTypes( ast::TranslationUnit & translationUnit ); 25 28 -
src/Validate/ReplaceTypedef.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ReplaceTypedef.cpp -- 7 // ReplaceTypedef.cpp -- Fill in all typedefs with the underlying type. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/ReplaceTypedef.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ReplaceTypedef.hpp -- 7 // ReplaceTypedef.hpp -- Fill in all typedefs with the underlying type. 8 8 // 9 9 // Author : Andrew Beach … … 22 22 namespace Validate { 23 23 24 /// Uses of typedef are replaced with the type in the typedef. 24 25 void replaceTypedef( ast::TranslationUnit & translationUnit ); 25 26 -
src/Validate/VerifyCtorDtorAssign.cpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // VerifyCtorDtorAssign.cpp -- 7 // VerifyCtorDtorAssign.cpp -- Check the form of operators. 8 8 // 9 9 // Author : Andrew Beach -
src/Validate/VerifyCtorDtorAssign.hpp
r0577df2 r11df881 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // VerifyCtorDtorAssign.hpp -- 7 // VerifyCtorDtorAssign.hpp -- Check the form of operators. 8 8 // 9 9 // Author : Andrew Beach … … 22 22 namespace Validate { 23 23 24 /// Check that constructors, destructors and assignments all have the correct 25 /// form. Must happen before auto-gen or anything that examines operators. 24 26 void verifyCtorDtorAssign( ast::TranslationUnit & translationUnit ); 25 27
Note: See TracChangeset
for help on using the changeset viewer.