Skip to content

Commit e6a34e8

Browse files
authored
[ClangImporter] Honor ClangTarget in getNormalInvocationArguments (#72375)
In `getNormalInvocationArguments`, use a triple that corresponds to `ClangTarget`. This matches the behavior of `addCommonInvocationArguments`. rdar://124539816
1 parent 24fb38d commit e6a34e8

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

lib/ClangImporter/ClangImporter.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -461,12 +461,15 @@ static inline bool isPCHFilenameExtension(StringRef path) {
461461
.endswith(file_types::getExtension(file_types::TY_PCH));
462462
}
463463

464-
void
465-
importer::getNormalInvocationArguments(
466-
std::vector<std::string> &invocationArgStrs,
467-
ASTContext &ctx) {
464+
void importer::getNormalInvocationArguments(
465+
std::vector<std::string> &invocationArgStrs, ASTContext &ctx,
466+
bool ignoreClangTarget) {
468467
const auto &LangOpts = ctx.LangOpts;
469-
const llvm::Triple &triple = LangOpts.Target;
468+
llvm::Triple triple = LangOpts.Target;
469+
// Use clang specific target triple if given.
470+
if (LangOpts.ClangTarget.has_value() && !ignoreClangTarget) {
471+
triple = LangOpts.ClangTarget.value();
472+
}
470473
SearchPathOptions &searchPathOpts = ctx.SearchPathOpts;
471474
ClangImporterOptions &importerOpts = ctx.ClangImporterOpts;
472475
auto languageVersion = ctx.LangOpts.EffectiveLanguageVersion;
@@ -1057,7 +1060,7 @@ ClangImporter::getClangDriverArguments(ASTContext &ctx, bool ignoreClangTarget)
10571060
switch (ctx.ClangImporterOpts.Mode) {
10581061
case ClangImporterOptions::Modes::Normal:
10591062
case ClangImporterOptions::Modes::PrecompiledModule:
1060-
getNormalInvocationArguments(invocationArgStrs, ctx);
1063+
getNormalInvocationArguments(invocationArgStrs, ctx, ignoreClangTarget);
10611064
break;
10621065
case ClangImporterOptions::Modes::EmbedBitcode:
10631066
getEmbedBitcodeInvocationArguments(invocationArgStrs, ctx);

lib/ClangImporter/ImporterImpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1879,7 +1879,7 @@ bool hasSameUnderlyingType(const clang::Type *a,
18791879

18801880
/// Add command-line arguments for a normal import of Clang code.
18811881
void getNormalInvocationArguments(std::vector<std::string> &invocationArgStrs,
1882-
ASTContext &ctx);
1882+
ASTContext &ctx, bool ignoreClangTarget);
18831883

18841884
/// Add command-line arguments common to all imports of Clang code.
18851885
void addCommonInvocationArguments(std::vector<std::string> &invocationArgStrs,

0 commit comments

Comments
 (0)