From: Jonas Hahnfeld Date: Wed, 27 Sep 2017 18:12:36 +0000 (+0000) Subject: [OpenMP] Fix translation of target args X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a591cfdc7882ec9681daf054b93989cda4559d81;p=clang [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314330 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Compilation.cpp b/lib/Driver/Compilation.cpp index fe2a18131c..b3991dad3a 100644 --- a/lib/Driver/Compilation.cpp +++ b/lib/Driver/Compilation.cpp @@ -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);