[PATCH] D16499: [CUDA] Disable ctor/dtor aliases in device code.

Justin Lebar via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 25 14:40:33 PST 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL258733: [CUDA] Disable ctor/dtor aliases in device code. (authored by jlebar).

Changed prior to commit:
  http://reviews.llvm.org/D16499?vs=45779&id=45918#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D16499

Files:
  cfe/trunk/lib/Driver/Tools.cpp
  cfe/trunk/test/Driver/cuda-constructor-alias.cu

Index: cfe/trunk/test/Driver/cuda-constructor-alias.cu
===================================================================
--- cfe/trunk/test/Driver/cuda-constructor-alias.cu
+++ cfe/trunk/test/Driver/cuda-constructor-alias.cu
@@ -0,0 +1,13 @@
+// REQUIRES: clang-driver
+// REQUIRES: x86-registered-target
+// REQUIRES: nvptx-registered-target
+
+// Check that we don't pass -mconstructor-aliases to CUDA device-side
+// compilation, but we do pass it to host-side compilation.
+
+// RUN: %clang -### %s 2>&1 | FileCheck %s
+// CHECK: "-cc1"
+// CHECK-NOT: "-fcuda-is-device" {{.*}}"-mconstructor-aliases"
+// CHECK-NOT: "-mconstructor-aliases" {{.*}}"-fcuda-is-device"
+// CHECK: "-cc1"
+// CHECK-SAME: "-mconstructor-aliases"
Index: cfe/trunk/lib/Driver/Tools.cpp
===================================================================
--- cfe/trunk/lib/Driver/Tools.cpp
+++ cfe/trunk/lib/Driver/Tools.cpp
@@ -3985,9 +3985,11 @@
     CmdArgs.push_back("Arguments");
   }
 
-  // Enable -mconstructor-aliases except on darwin, where we have to
-  // work around a linker bug;  see <rdar://problem/7651567>.
-  if (!getToolChain().getTriple().isOSDarwin())
+  // Enable -mconstructor-aliases except on darwin, where we have to work around
+  // a linker bug (see <rdar://problem/7651567>), and CUDA device code, where
+  // aliases aren't supported.
+  if (!getToolChain().getTriple().isOSDarwin() &&
+      !getToolChain().getTriple().isNVPTX())
     CmdArgs.push_back("-mconstructor-aliases");
 
   // Darwin's kernel doesn't support guard variables; just die if we


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16499.45918.patch
Type: text/x-patch
Size: 1565 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160125/ec8b98e2/attachment-0001.bin>


More information about the cfe-commits mailing list