]> granicus.if.org Git - clang/commitdiff
Revert "[OPENMP] Fix for pacify buildbots, NFC."
authorAlexey Bataev <a.bataev@hotmail.com>
Fri, 4 Aug 2017 21:26:25 +0000 (21:26 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Fri, 4 Aug 2017 21:26:25 +0000 (21:26 +0000)
This reverts commit r310120.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310134 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGStmtOpenMP.cpp

index 54d381798c63bd9fe7d93fbb69f80e0225f68ecb..e7e5976e601b8ff54781caaf058b3075ace9a4a2 100644 (file)
@@ -320,7 +320,10 @@ static std::pair<llvm::Function *, bool> emitOutlinedFunctionPrologue(
                                   ArgType, ImplicitParamDecl::Other);
     Args.emplace_back(Arg);
     // Do not cast arguments if we emit function with non-original types.
-    TargetArgs.emplace_back(CGM.getOpenMPRuntime().translateParameter(FD, Arg));
+    TargetArgs.emplace_back(
+        FO.UIntPtrCastRequired
+            ? Arg
+            : CGM.getOpenMPRuntime().translateParameter(FD, Arg));
     ++I;
   }
   Args.append(
@@ -444,11 +447,15 @@ CodeGenFunction::GenerateOpenMPCapturedStmtFunction(const CapturedStmt &S) {
   FunctionArgList Args;
   llvm::DenseMap<const Decl *, std::pair<const VarDecl *, Address>> LocalAddrs;
   llvm::DenseMap<const Decl *, std::pair<const Expr *, llvm::Value *>> VLASizes;
-  FunctionOptions FO(&S, !NeedWrapperFunction, /*RegisterCastedArgsOnly=*/false,
-                     CapturedStmtInfo->getHelperName(),
-                     [](CodeGenFunction &CGF, const VarDecl *VD, Address Addr) {
-                       CGF.setAddrOfLocalVar(VD, Addr);
-                     });
+  FunctionOptions FO(
+      &S, !NeedWrapperFunction, /*RegisterCastedArgsOnly=*/false,
+      CapturedStmtInfo->getHelperName(),
+      [NeedWrapperFunction](CodeGenFunction &CGF, const VarDecl *VD,
+                            Address Addr) {
+        assert(NeedWrapperFunction && "Function should not be called if "
+                                      "wrapper function is not required.");
+        CGF.setAddrOfLocalVar(VD, Addr);
+      });
   llvm::Function *F;
   bool HasUIntPtrArgs;
   std::tie(F, HasUIntPtrArgs) = emitOutlinedFunctionPrologue(
@@ -470,12 +477,11 @@ CodeGenFunction::GenerateOpenMPCapturedStmtFunction(const CapturedStmt &S) {
   SmallString<256> Buffer;
   llvm::raw_svector_ostream Out(Buffer);
   Out << "__nondebug_wrapper_" << CapturedStmtInfo->getHelperName();
-  FunctionOptions WrapperFO(
-      &S, /*UIntPtrCastRequired=*/true,
-      /*RegisterCastedArgsOnly=*/true, Out.str(),
-      [](CodeGenFunction &CGF, const VarDecl *VD, Address Addr) {
-        CGF.setAddrOfLocalVar(VD, Addr);
-      });
+  FunctionOptions WrapperFO(&S, /*UIntPtrCastRequired=*/true,
+                            /*RegisterCastedArgsOnly=*/true, Out.str(),
+                            [](CodeGenFunction &, const VarDecl *, Address) {
+                              llvm_unreachable("Function should not be called");
+                            });
   CodeGenFunction WrapperCGF(CGM, /*suppressNewContext=*/true);
   WrapperCGF.disableDebugInfo();
   Args.clear();