[OpenMP] Fix translation of target args

ToolChain::TranslateArgs() returns nullptr if no changes are performed.
This would currently mean that OpenMPArgs are lost. Patch fixes this
by falling back to simply using OpenMPArgs in that case.

Differential Revision: https://reviews.llvm.org/D38259

llvm-svn: 314330
This commit is contained in:
Jonas Hahnfeld 2017-09-27 18:12:36 +00:00
parent 757e61fa4f
commit 102c333d9a
1 changed files with 6 additions and 4 deletions

View File

@ -57,14 +57,16 @@ Compilation::getArgsForToolChain(const ToolChain *TC, StringRef BoundArch,
*TranslatedArgs, DeviceOffloadKind, AllocatedArgs);
if (!OpenMPArgs) {
Entry = TC->TranslateArgs(*TranslatedArgs, BoundArch, DeviceOffloadKind);
if (!Entry)
Entry = TranslatedArgs;
} else {
Entry = TC->TranslateArgs(*OpenMPArgs, BoundArch, DeviceOffloadKind);
delete OpenMPArgs;
if (!Entry)
Entry = OpenMPArgs;
else
delete OpenMPArgs;
}
if (!Entry)
Entry = TranslatedArgs;
// Add allocated arguments to the final DAL.
for (auto ArgPtr : AllocatedArgs) {
Entry->AddSynthesizedArg(ArgPtr);