llvm-project/clang
Yaxun (Sam) Liu 40df06cdaf [CUDA][HIP] Defer overloading resolution diagnostics for host device functions
In CUDA/HIP a function may become implicit host device function by
pragma or constexpr. A host device function is checked in both
host and device compilation. However it may be emitted only
on host or device side, therefore the diagnostics should be
deferred until it is known to be emitted.

Currently clang is only able to defer certain diagnostics. This causes
false alarms and limits the usefulness of host device functions.

This patch lets clang defer all overloading resolution diagnostics for host device functions.

An option -fgpu-defer-diag is added to control this behavior. By default
it is off.

It is NFC for other languages.

Differential Revision: https://reviews.llvm.org/D84364
2020-09-17 11:30:42 -04:00
..
INPUTS
bindings python bindings: fix DeprecationWarning 2020-08-10 15:25:23 -07:00
cmake Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
docs [clang][docs] Fix documentation of -O 2020-09-17 13:44:01 +01:00
examples [cmake] Fix build of attribute plugin example on Windows 2020-09-07 10:04:32 +02:00
include [CUDA][HIP] Defer overloading resolution diagnostics for host device functions 2020-09-17 11:30:42 -04:00
lib [CUDA][HIP] Defer overloading resolution diagnostics for host device functions 2020-09-17 11:30:42 -04:00
runtime [CMake][compiler-rt][libunwind] Compile assembly files as ASM not C, unify workarounds 2020-08-27 15:40:15 +03:00
test [CUDA][HIP] Defer overloading resolution diagnostics for host device functions 2020-09-17 11:30:42 -04:00
tools [CUDA][HIP] Defer overloading resolution diagnostics for host device functions 2020-09-17 11:30:42 -04:00
unittests [clang-format][regression][PR47461] ifdef causes catch to be seen as a function 2020-09-17 13:23:06 +01:00
utils [CUDA][HIP] Defer overloading resolution diagnostics for host device functions 2020-09-17 11:30:42 -04:00
www Implements [[likely]] and [[unlikely]] in IfStmt. 2020-09-09 20:48:37 +02:00
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt Revert "[nfc] test commit" 2020-05-16 15:12:04 -05:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/