OLD | NEW |
1 //===--- ASTContext.cpp - Context to hold long-lived AST nodes ------------===// | 1 //===--- ASTContext.cpp - Context to hold long-lived AST nodes ------------===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file implements the ASTContext interface. | 10 // This file implements the ASTContext interface. |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
674 return CanonTTP; | 674 return CanonTTP; |
675 } | 675 } |
676 | 676 |
677 CXXABI *ASTContext::createCXXABI(const TargetInfo &T) { | 677 CXXABI *ASTContext::createCXXABI(const TargetInfo &T) { |
678 if (!LangOpts.CPlusPlus) return nullptr; | 678 if (!LangOpts.CPlusPlus) return nullptr; |
679 | 679 |
680 switch (T.getCXXABI().getKind()) { | 680 switch (T.getCXXABI().getKind()) { |
681 case TargetCXXABI::GenericARM: // Same as Itanium at this level | 681 case TargetCXXABI::GenericARM: // Same as Itanium at this level |
682 case TargetCXXABI::iOS: | 682 case TargetCXXABI::iOS: |
683 case TargetCXXABI::iOS64: | 683 case TargetCXXABI::iOS64: |
684 case TargetCXXABI::Emscripten: // @LOCALMOD Emscripten | |
685 case TargetCXXABI::GenericAArch64: | 684 case TargetCXXABI::GenericAArch64: |
686 case TargetCXXABI::GenericMIPS: | 685 case TargetCXXABI::GenericMIPS: |
687 case TargetCXXABI::GenericItanium: | 686 case TargetCXXABI::GenericItanium: |
688 return CreateItaniumCXXABI(*this); | 687 return CreateItaniumCXXABI(*this); |
689 case TargetCXXABI::Microsoft: | 688 case TargetCXXABI::Microsoft: |
690 return CreateMicrosoftCXXABI(*this); | 689 return CreateMicrosoftCXXABI(*this); |
691 } | 690 } |
692 llvm_unreachable("Invalid CXXABI type!"); | 691 llvm_unreachable("Invalid CXXABI type!"); |
693 } | 692 } |
694 | 693 |
(...skipping 7404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8099 VTContext.reset(new ItaniumVTableContext(*this)); | 8098 VTContext.reset(new ItaniumVTableContext(*this)); |
8100 } | 8099 } |
8101 return VTContext.get(); | 8100 return VTContext.get(); |
8102 } | 8101 } |
8103 | 8102 |
8104 MangleContext *ASTContext::createMangleContext() { | 8103 MangleContext *ASTContext::createMangleContext() { |
8105 switch (Target->getCXXABI().getKind()) { | 8104 switch (Target->getCXXABI().getKind()) { |
8106 case TargetCXXABI::GenericAArch64: | 8105 case TargetCXXABI::GenericAArch64: |
8107 case TargetCXXABI::GenericItanium: | 8106 case TargetCXXABI::GenericItanium: |
8108 case TargetCXXABI::GenericARM: | 8107 case TargetCXXABI::GenericARM: |
8109 case TargetCXXABI::Emscripten: // @LOCALMOD Emscripten | |
8110 case TargetCXXABI::GenericMIPS: | 8108 case TargetCXXABI::GenericMIPS: |
8111 case TargetCXXABI::iOS: | 8109 case TargetCXXABI::iOS: |
8112 case TargetCXXABI::iOS64: | 8110 case TargetCXXABI::iOS64: |
8113 return ItaniumMangleContext::create(*this, getDiagnostics()); | 8111 return ItaniumMangleContext::create(*this, getDiagnostics()); |
8114 case TargetCXXABI::Microsoft: | 8112 case TargetCXXABI::Microsoft: |
8115 return MicrosoftMangleContext::create(*this, getDiagnostics()); | 8113 return MicrosoftMangleContext::create(*this, getDiagnostics()); |
8116 } | 8114 } |
8117 llvm_unreachable("Unsupported ABI"); | 8115 llvm_unreachable("Unsupported ABI"); |
8118 } | 8116 } |
8119 | 8117 |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8426 } | 8424 } |
8427 | 8425 |
8428 // Explicitly instantiate this in case a Redeclarable<T> is used from a TU that | 8426 // Explicitly instantiate this in case a Redeclarable<T> is used from a TU that |
8429 // doesn't include ASTContext.h | 8427 // doesn't include ASTContext.h |
8430 template | 8428 template |
8431 clang::LazyGenerationalUpdatePtr< | 8429 clang::LazyGenerationalUpdatePtr< |
8432 const Decl *, Decl *, &ExternalASTSource::CompleteRedeclChain>::ValueType | 8430 const Decl *, Decl *, &ExternalASTSource::CompleteRedeclChain>::ValueType |
8433 clang::LazyGenerationalUpdatePtr< | 8431 clang::LazyGenerationalUpdatePtr< |
8434 const Decl *, Decl *, &ExternalASTSource::CompleteRedeclChain>::makeValue( | 8432 const Decl *, Decl *, &ExternalASTSource::CompleteRedeclChain>::makeValue( |
8435 const clang::ASTContext &Ctx, Decl *Value); | 8433 const clang::ASTContext &Ctx, Decl *Value); |
OLD | NEW |