This constructor is supposed to take a string representing an llvm::Triple.
We might as well take a llvm::Triple here which saves us all the string
conversions in the call sites and we make this more type safe.
static void Initialize();
static void Terminate();
- /// Gets the host target triple as a const string.
+ /// Gets the host target triple.
///
/// \return
- /// A const string object containing the host target triple.
- static llvm::StringRef GetTargetTriple();
+ /// The host target triple.
+ static llvm::Triple GetTargetTriple();
enum ArchitectureKind {
eArchKindDefault, // The overall default architecture that applications will
static bool classof(const TypeSystem *ts) { return ts->isA(&ID); }
// Constructors and Destructors
- explicit ClangASTContext(llvm::StringRef triple = "");
+ explicit ClangASTContext(llvm::Triple triple = llvm::Triple());
explicit ClangASTContext(ArchSpec arch);
/// Constructs a ClangASTContext that uses an existing ASTContext internally.
}
llvm::once_flag m_host_triple_once;
- std::string m_host_triple;
+ llvm::Triple m_host_triple;
llvm::once_flag m_host_arch_once;
ArchSpec m_host_arch_32;
g_fields = nullptr;
}
-llvm::StringRef HostInfoBase::GetTargetTriple() {
+llvm::Triple HostInfoBase::GetTargetTriple() {
llvm::call_once(g_fields->m_host_triple_once, []() {
g_fields->m_host_triple =
- HostInfo::GetArchitecture().GetTriple().getTriple();
+ HostInfo::GetArchitecture().GetTriple();
});
return g_fields->m_host_triple;
}
m_ast_ctx(runtime.GetProcess()
->GetTarget()
.GetArchitecture()
- .GetTriple()
- .getTriple()
- .c_str()),
+ .GetTriple()),
m_type_realizer_sp(m_runtime.GetEncodingToType()) {
m_external_source = new AppleObjCExternalASTSource(*this);
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource> external_source_owning_ptr(
m_scratch_ast_ctx_up.reset(new ClangASTContext(runtime.GetProcess()
->GetTarget()
.GetArchitecture()
- .GetTriple()
- .str()
- .c_str()));
+ .GetTriple()));
}
std::string AppleObjCTypeEncodingParser::ReadStructName(StringLexer &type) {
Opts.NoInlineDefine = !Opt;
}
-ClangASTContext::ClangASTContext(llvm::StringRef target_triple) {
- if (!target_triple.empty())
- SetTargetTriple(target_triple);
+ClangASTContext::ClangASTContext(llvm::Triple target_triple) {
+ if (!target_triple.str().empty())
+ SetTargetTriple(target_triple.str());
// The caller didn't pass an ASTContext so create a new one for this
// ClangASTContext.
CreateASTContext();
SubsystemRAII<FileSystem, HostInfo> subsystems;
void SetUp() override {
- std::string triple = HostInfo::GetTargetTriple();
- m_ast.reset(new ClangASTContext(triple.c_str()));
+ m_ast.reset(new ClangASTContext(HostInfo::GetTargetTriple()));
}
void TearDown() override { m_ast.reset(); }