Author: Vlad Serebrennikov Date: 2024-08-16T00:24:31+03:00 New Revision: 9f1dc01e0ab4f91c4052a712ce590d2e86b81dc3
URL: https://github.com/llvm/llvm-project/commit/9f1dc01e0ab4f91c4052a712ce590d2e86b81dc3 DIFF: https://github.com/llvm/llvm-project/commit/9f1dc01e0ab4f91c4052a712ce590d2e86b81dc3.diff LOG: [clang][NFC] Fix table of contents in `Sema.h` Add APINotes and bounds safety to the table of contents, and move their declarations appropriately. Added: Modified: clang/include/clang/Sema/Sema.h Removed: ################################################################################ diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 88e82dca007b8b..ea297783846641 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -536,38 +536,40 @@ class Sema final : public SemaBase { // Table of Contents // ----------------- // 1. Semantic Analysis (Sema.cpp) - // 2. C++ Access Control (SemaAccess.cpp) - // 3. Attributes (SemaAttr.cpp) - // 4. Availability Attribute Handling (SemaAvailability.cpp) - // 5. Casts (SemaCast.cpp) - // 6. Extra Semantic Checking (SemaChecking.cpp) - // 7. C++ Coroutines (SemaCoroutine.cpp) - // 8. C++ Scope Specifiers (SemaCXXScopeSpec.cpp) - // 9. Declarations (SemaDecl.cpp) - // 10. Declaration Attribute Handling (SemaDeclAttr.cpp) - // 11. C++ Declarations (SemaDeclCXX.cpp) - // 12. C++ Exception Specifications (SemaExceptionSpec.cpp) - // 13. Expressions (SemaExpr.cpp) - // 14. C++ Expressions (SemaExprCXX.cpp) - // 15. Member Access Expressions (SemaExprMember.cpp) - // 16. Initializers (SemaInit.cpp) - // 17. C++ Lambda Expressions (SemaLambda.cpp) - // 18. Name Lookup (SemaLookup.cpp) - // 19. Modules (SemaModule.cpp) - // 20. C++ Overloading (SemaOverload.cpp) - // 21. Statements (SemaStmt.cpp) - // 22. `inline asm` Statement (SemaStmtAsm.cpp) - // 23. Statement Attribute Handling (SemaStmtAttr.cpp) - // 24. C++ Templates (SemaTemplate.cpp) - // 25. C++ Template Argument Deduction (SemaTemplateDeduction.cpp) - // 26. C++ Template Deduction Guide (SemaTemplateDeductionGuide.cpp) - // 27. C++ Template Instantiation (SemaTemplateInstantiate.cpp) - // 28. C++ Template Declaration Instantiation + // 2. API Notes (SemaAPINotes.cpp) + // 3. C++ Access Control (SemaAccess.cpp) + // 4. Attributes (SemaAttr.cpp) + // 5. Availability Attribute Handling (SemaAvailability.cpp) + // 6. Bounds Safety (SemaBoundsSafety.cpp) + // 7. Casts (SemaCast.cpp) + // 8. Extra Semantic Checking (SemaChecking.cpp) + // 9. C++ Coroutines (SemaCoroutine.cpp) + // 10. C++ Scope Specifiers (SemaCXXScopeSpec.cpp) + // 11. Declarations (SemaDecl.cpp) + // 12. Declaration Attribute Handling (SemaDeclAttr.cpp) + // 13. C++ Declarations (SemaDeclCXX.cpp) + // 14. C++ Exception Specifications (SemaExceptionSpec.cpp) + // 15. Expressions (SemaExpr.cpp) + // 16. C++ Expressions (SemaExprCXX.cpp) + // 17. Member Access Expressions (SemaExprMember.cpp) + // 18. Initializers (SemaInit.cpp) + // 19. C++ Lambda Expressions (SemaLambda.cpp) + // 20. Name Lookup (SemaLookup.cpp) + // 21. Modules (SemaModule.cpp) + // 22. C++ Overloading (SemaOverload.cpp) + // 23. Statements (SemaStmt.cpp) + // 24. `inline asm` Statement (SemaStmtAsm.cpp) + // 25. Statement Attribute Handling (SemaStmtAttr.cpp) + // 26. C++ Templates (SemaTemplate.cpp) + // 27. C++ Template Argument Deduction (SemaTemplateDeduction.cpp) + // 28. C++ Template Deduction Guide (SemaTemplateDeductionGuide.cpp) + // 29. C++ Template Instantiation (SemaTemplateInstantiate.cpp) + // 30. C++ Template Declaration Instantiation // (SemaTemplateInstantiateDecl.cpp) - // 29. C++ Variadic Templates (SemaTemplateVariadic.cpp) - // 30. Constraints and Concepts (SemaConcept.cpp) - // 31. Types (SemaType.cpp) - // 32. FixIt Helpers (SemaFixItUtils.cpp) + // 31. C++ Variadic Templates (SemaTemplateVariadic.cpp) + // 32. Constraints and Concepts (SemaConcept.cpp) + // 33. Types (SemaType.cpp) + // 34. FixIt Helpers (SemaFixItUtils.cpp) /// \name Semantic Analysis /// Implementations are in Sema.cpp @@ -1325,6 +1327,25 @@ class Sema final : public SemaBase { // // + /// \name API Notes + /// Implementations are in SemaAPINotes.cpp + ///@{ + +public: + /// Map any API notes provided for this declaration to attributes on the + /// declaration. + /// + /// Triggered by declaration-attribute processing. + void ProcessAPINotes(Decl *D); + + ///@} + + // + // + // ------------------------------------------------------------------------- + // + // + /// \name C++ Access Control /// Implementations are in SemaAccess.cpp ///@{ @@ -2095,6 +2116,39 @@ class Sema final : public SemaBase { // // + /// \name Bounds Safety + /// Implementations are in SemaBoundsSafety.cpp + ///@{ +public: + /// Check if applying the specified attribute variant from the "counted by" + /// family of attributes to FieldDecl \p FD is semantically valid. If + /// semantically invalid diagnostics will be emitted explaining the problems. + /// + /// \param FD The FieldDecl to apply the attribute to + /// \param E The count expression on the attribute + /// \param CountInBytes If true the attribute is from the "sized_by" family of + /// attributes. If the false the attribute is from + /// "counted_by" family of attributes. + /// \param OrNull If true the attribute is from the "_or_null" suffixed family + /// of attributes. If false the attribute does not have the + /// suffix. + /// + /// Together \p CountInBytes and \p OrNull decide the attribute variant. E.g. + /// \p CountInBytes and \p OrNull both being true indicates the + /// `counted_by_or_null` attribute. + /// + /// \returns false iff semantically valid. + bool CheckCountedByAttrOnField(FieldDecl *FD, Expr *E, bool CountInBytes, + bool OrNull); + + ///@} + + // + // + // ------------------------------------------------------------------------- + // + // + /// \name Casts /// Implementations are in SemaCast.cpp ///@{ @@ -15045,58 +15099,6 @@ class Sema final : public SemaBase { std::string getFixItZeroLiteralForType(QualType T, SourceLocation Loc) const; ///@} - - // - // - // ------------------------------------------------------------------------- - // - // - - /// \name API Notes - /// Implementations are in SemaAPINotes.cpp - ///@{ - -public: - /// Map any API notes provided for this declaration to attributes on the - /// declaration. - /// - /// Triggered by declaration-attribute processing. - void ProcessAPINotes(Decl *D); - - ///@} - - // - // - // ------------------------------------------------------------------------- - // - // - - /// \name Bounds Safety - /// Implementations are in SemaBoundsSafety.cpp - ///@{ -public: - /// Check if applying the specified attribute variant from the "counted by" - /// family of attributes to FieldDecl \p FD is semantically valid. If - /// semantically invalid diagnostics will be emitted explaining the problems. - /// - /// \param FD The FieldDecl to apply the attribute to - /// \param E The count expression on the attribute - /// \param CountInBytes If true the attribute is from the "sized_by" family of - /// attributes. If the false the attribute is from - /// "counted_by" family of attributes. - /// \param OrNull If true the attribute is from the "_or_null" suffixed family - /// of attributes. If false the attribute does not have the - /// suffix. - /// - /// Together \p CountInBytes and \p OrNull decide the attribute variant. E.g. - /// \p CountInBytes and \p OrNull both being true indicates the - /// `counted_by_or_null` attribute. - /// - /// \returns false iff semantically valid. - bool CheckCountedByAttrOnField(FieldDecl *FD, Expr *E, bool CountInBytes, - bool OrNull); - - ///@} }; DeductionFailureInfo _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits