aboutsummaryrefslogtreecommitdiff
path: root/test/Parser/lambda-attr.cu
diff options
context:
space:
mode:
authorJustin Lebar <jlebar@google.com>2016-10-13 20:52:12 +0000
committerJustin Lebar <jlebar@google.com>2016-10-13 20:52:12 +0000
commit45b902e6896fcf9db3e79c1e4a49424cb67c8447 (patch)
tree2ac1f1f9eeb7b1100c5dbaffdf14ce07ecbf2a18 /test/Parser/lambda-attr.cu
parent8af2f11fe87ef22ffcb33e5da8e8955b101cf6a2 (diff)
[CUDA] Emit deferred diagnostics during Sema rather than during codegen.
Summary: Emitting deferred diagnostics during codegen was a hack. It did work, but usability was poor, both for us as compiler devs and for users. We don't codegen if there are any sema errors, so for users this meant that they wouldn't see deferred errors if there were any non-deferred errors. For devs, this meant that we had to carefully split up our tests so that when we tested deferred errors, we didn't emit any non-deferred errors. This change moves checking for deferred errors into Sema. See the big comment in SemaCUDA.cpp for an overview of the idea. This checking adds overhead to compilation, because we have to maintain a partial call graph. As a result, this change makes deferred errors a CUDA-only concept (whereas before they were a general concept). If anyone else wants to use this framework for something other than CUDA, we can generalize at that time. This patch makes the minimal set of test changes -- after this lands, I'll go back through and do a cleanup of the tests that we no longer have to split up. Reviewers: rnk Subscribers: cfe-commits, rsmith, tra Differential Revision: https://reviews.llvm.org/D25541 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284158 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser/lambda-attr.cu')
-rw-r--r--test/Parser/lambda-attr.cu2
1 files changed, 1 insertions, 1 deletions
diff --git a/test/Parser/lambda-attr.cu b/test/Parser/lambda-attr.cu
index dfd6fc8ecd..d5aaf01946 100644
--- a/test/Parser/lambda-attr.cu
+++ b/test/Parser/lambda-attr.cu
@@ -2,7 +2,7 @@
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fcuda-is-device -verify %s
__attribute__((device)) void device_fn() {}
-__attribute__((device)) void hd_fn() {}
+__attribute__((host, device)) void hd_fn() {}
__attribute__((device)) void device_attr() {
([]() __attribute__((device)) { device_fn(); })();