123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #pragma once
- #ifdef __GNUC__
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- #endif
- //===--- ComputeDependence.h -------------------------------------- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- //
- // Calculate various template dependency flags for the AST.
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_CLANG_AST_COMPUTEDEPENDENCE_H
- #define LLVM_CLANG_AST_COMPUTEDEPENDENCE_H
- #include "clang/AST/DependenceFlags.h"
- #include "clang/Basic/ExceptionSpecificationType.h"
- #include "llvm/ADT/ArrayRef.h"
- namespace clang {
- class ASTContext;
- class Expr;
- class FullExpr;
- class OpaqueValueExpr;
- class ParenExpr;
- class UnaryOperator;
- class UnaryExprOrTypeTraitExpr;
- class ArraySubscriptExpr;
- class MatrixSubscriptExpr;
- class CompoundLiteralExpr;
- class CastExpr;
- class BinaryOperator;
- class ConditionalOperator;
- class BinaryConditionalOperator;
- class StmtExpr;
- class ConvertVectorExpr;
- class VAArgExpr;
- class ChooseExpr;
- class NoInitExpr;
- class ArrayInitLoopExpr;
- class ImplicitValueInitExpr;
- class InitListExpr;
- class ExtVectorElementExpr;
- class BlockExpr;
- class AsTypeExpr;
- class DeclRefExpr;
- class RecoveryExpr;
- class CXXRewrittenBinaryOperator;
- class CXXStdInitializerListExpr;
- class CXXTypeidExpr;
- class MSPropertyRefExpr;
- class MSPropertySubscriptExpr;
- class CXXUuidofExpr;
- class CXXThisExpr;
- class CXXThrowExpr;
- class CXXBindTemporaryExpr;
- class CXXScalarValueInitExpr;
- class CXXDeleteExpr;
- class ArrayTypeTraitExpr;
- class ExpressionTraitExpr;
- class CXXNoexceptExpr;
- class PackExpansionExpr;
- class SubstNonTypeTemplateParmExpr;
- class CoroutineSuspendExpr;
- class DependentCoawaitExpr;
- class CXXNewExpr;
- class CXXPseudoDestructorExpr;
- class OverloadExpr;
- class DependentScopeDeclRefExpr;
- class CXXConstructExpr;
- class CXXDefaultInitExpr;
- class CXXDefaultArgExpr;
- class LambdaExpr;
- class CXXUnresolvedConstructExpr;
- class CXXDependentScopeMemberExpr;
- class MaterializeTemporaryExpr;
- class CXXFoldExpr;
- class TypeTraitExpr;
- class ConceptSpecializationExpr;
- class SYCLUniqueStableNameExpr;
- class PredefinedExpr;
- class CallExpr;
- class OffsetOfExpr;
- class MemberExpr;
- class ShuffleVectorExpr;
- class GenericSelectionExpr;
- class DesignatedInitExpr;
- class ParenListExpr;
- class PseudoObjectExpr;
- class AtomicExpr;
- class OMPArraySectionExpr;
- class OMPArrayShapingExpr;
- class OMPIteratorExpr;
- class ObjCArrayLiteral;
- class ObjCDictionaryLiteral;
- class ObjCBoxedExpr;
- class ObjCEncodeExpr;
- class ObjCIvarRefExpr;
- class ObjCPropertyRefExpr;
- class ObjCSubscriptRefExpr;
- class ObjCIsaExpr;
- class ObjCIndirectCopyRestoreExpr;
- class ObjCMessageExpr;
- // The following functions are called from constructors of `Expr`, so they
- // should not access anything beyond basic
- ExprDependence computeDependence(FullExpr *E);
- ExprDependence computeDependence(OpaqueValueExpr *E);
- ExprDependence computeDependence(ParenExpr *E);
- ExprDependence computeDependence(UnaryOperator *E, const ASTContext &Ctx);
- ExprDependence computeDependence(UnaryExprOrTypeTraitExpr *E);
- ExprDependence computeDependence(ArraySubscriptExpr *E);
- ExprDependence computeDependence(MatrixSubscriptExpr *E);
- ExprDependence computeDependence(CompoundLiteralExpr *E);
- ExprDependence computeDependence(CastExpr *E);
- ExprDependence computeDependence(BinaryOperator *E);
- ExprDependence computeDependence(ConditionalOperator *E);
- ExprDependence computeDependence(BinaryConditionalOperator *E);
- ExprDependence computeDependence(StmtExpr *E, unsigned TemplateDepth);
- ExprDependence computeDependence(ConvertVectorExpr *E);
- ExprDependence computeDependence(VAArgExpr *E);
- ExprDependence computeDependence(ChooseExpr *E);
- ExprDependence computeDependence(NoInitExpr *E);
- ExprDependence computeDependence(ArrayInitLoopExpr *E);
- ExprDependence computeDependence(ImplicitValueInitExpr *E);
- ExprDependence computeDependence(InitListExpr *E);
- ExprDependence computeDependence(ExtVectorElementExpr *E);
- ExprDependence computeDependence(BlockExpr *E);
- ExprDependence computeDependence(AsTypeExpr *E);
- ExprDependence computeDependence(DeclRefExpr *E, const ASTContext &Ctx);
- ExprDependence computeDependence(RecoveryExpr *E);
- ExprDependence computeDependence(CXXRewrittenBinaryOperator *E);
- ExprDependence computeDependence(CXXStdInitializerListExpr *E);
- ExprDependence computeDependence(CXXTypeidExpr *E);
- ExprDependence computeDependence(MSPropertyRefExpr *E);
- ExprDependence computeDependence(MSPropertySubscriptExpr *E);
- ExprDependence computeDependence(CXXUuidofExpr *E);
- ExprDependence computeDependence(CXXThisExpr *E);
- ExprDependence computeDependence(CXXThrowExpr *E);
- ExprDependence computeDependence(CXXBindTemporaryExpr *E);
- ExprDependence computeDependence(CXXScalarValueInitExpr *E);
- ExprDependence computeDependence(CXXDeleteExpr *E);
- ExprDependence computeDependence(ArrayTypeTraitExpr *E);
- ExprDependence computeDependence(ExpressionTraitExpr *E);
- ExprDependence computeDependence(CXXNoexceptExpr *E, CanThrowResult CT);
- ExprDependence computeDependence(PackExpansionExpr *E);
- ExprDependence computeDependence(SubstNonTypeTemplateParmExpr *E);
- ExprDependence computeDependence(CoroutineSuspendExpr *E);
- ExprDependence computeDependence(DependentCoawaitExpr *E);
- ExprDependence computeDependence(CXXNewExpr *E);
- ExprDependence computeDependence(CXXPseudoDestructorExpr *E);
- ExprDependence computeDependence(OverloadExpr *E, bool KnownDependent,
- bool KnownInstantiationDependent,
- bool KnownContainsUnexpandedParameterPack);
- ExprDependence computeDependence(DependentScopeDeclRefExpr *E);
- ExprDependence computeDependence(CXXConstructExpr *E);
- ExprDependence computeDependence(CXXDefaultInitExpr *E);
- ExprDependence computeDependence(CXXDefaultArgExpr *E);
- ExprDependence computeDependence(LambdaExpr *E,
- bool ContainsUnexpandedParameterPack);
- ExprDependence computeDependence(CXXUnresolvedConstructExpr *E);
- ExprDependence computeDependence(CXXDependentScopeMemberExpr *E);
- ExprDependence computeDependence(MaterializeTemporaryExpr *E);
- ExprDependence computeDependence(CXXFoldExpr *E);
- ExprDependence computeDependence(TypeTraitExpr *E);
- ExprDependence computeDependence(ConceptSpecializationExpr *E,
- bool ValueDependent);
- ExprDependence computeDependence(SYCLUniqueStableNameExpr *E);
- ExprDependence computeDependence(PredefinedExpr *E);
- ExprDependence computeDependence(CallExpr *E, llvm::ArrayRef<Expr *> PreArgs);
- ExprDependence computeDependence(OffsetOfExpr *E);
- ExprDependence computeDependence(MemberExpr *E);
- ExprDependence computeDependence(ShuffleVectorExpr *E);
- ExprDependence computeDependence(GenericSelectionExpr *E,
- bool ContainsUnexpandedPack);
- ExprDependence computeDependence(DesignatedInitExpr *E);
- ExprDependence computeDependence(ParenListExpr *E);
- ExprDependence computeDependence(PseudoObjectExpr *E);
- ExprDependence computeDependence(AtomicExpr *E);
- ExprDependence computeDependence(OMPArraySectionExpr *E);
- ExprDependence computeDependence(OMPArrayShapingExpr *E);
- ExprDependence computeDependence(OMPIteratorExpr *E);
- ExprDependence computeDependence(ObjCArrayLiteral *E);
- ExprDependence computeDependence(ObjCDictionaryLiteral *E);
- ExprDependence computeDependence(ObjCBoxedExpr *E);
- ExprDependence computeDependence(ObjCEncodeExpr *E);
- ExprDependence computeDependence(ObjCIvarRefExpr *E);
- ExprDependence computeDependence(ObjCPropertyRefExpr *E);
- ExprDependence computeDependence(ObjCSubscriptRefExpr *E);
- ExprDependence computeDependence(ObjCIsaExpr *E);
- ExprDependence computeDependence(ObjCIndirectCopyRestoreExpr *E);
- ExprDependence computeDependence(ObjCMessageExpr *E);
- } // namespace clang
- #endif
- #ifdef __GNUC__
- #pragma GCC diagnostic pop
- #endif
|