[PATCH] D18380: [CUDA] Implement -fcuda-relaxed-constexpr, and enable it by default.

Justin Lebar via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 22 15:08:29 PDT 2016


jlebar created this revision.
jlebar added a reviewer: tra.
jlebar added subscribers: rsmith, rnk, cfe-commits.

All constexpr functions are implicitly host+device, except for variadic
functions, which are not allowed on the device side.

As part of this change, we now allow you to overload a host+device
function with another function of the same signature but different
attributes.

A side-effect is that we'd previously accept a decl that had __host__
__device__ plus an unannotated def -- there was no ambiguity, because
you couldn't override the decl with different attrs, but now there is
ambiguity.  This causes us to reject some programs we previously
accepted.

http://reviews.llvm.org/D18380

Files:
  include/clang/Basic/LangOptions.def
  include/clang/Driver/CC1Options.td
  lib/Driver/Tools.cpp
  lib/Frontend/CompilerInvocation.cpp
  lib/Sema/SemaDecl.cpp
  lib/Sema/SemaOverload.cpp
  test/SemaCUDA/relaxed-constexpr.cu

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18380.51352.patch
Type: text/x-patch
Size: 5256 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160322/21ad123c/attachment.bin>


More information about the cfe-commits mailing list