Summary: Previously we had to split out a lot of our tests into a test that checked only immediate errors and a test that checked only deferred errors. This was because, if you emitted any immediate errors, we wouldn't run codegen, where the deferred errors were emitted. We've fixed this, and now emit deferred errors during sema. This lets us merge a bunch of tests, and lets us convert some other tests to -fsyntax-only. Reviewers: tra Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25755 llvm-svn: 284553
28 lines
524 B
Plaintext
28 lines
524 B
Plaintext
// RUN: %clang_cc1 -emit-pch %s -o %t
|
|
// RUN: %clang_cc1 -verify -verify-ignore-unexpected=note -include-pch %t -fsyntax-only %s
|
|
|
|
#ifndef HEADER
|
|
#define HEADER
|
|
|
|
#pragma clang force_cuda_host_device begin
|
|
#pragma clang force_cuda_host_device begin
|
|
#pragma clang force_cuda_host_device end
|
|
|
|
void hd1() {}
|
|
|
|
#else
|
|
|
|
void hd2() {}
|
|
|
|
#pragma clang force_cuda_host_device end
|
|
|
|
void host_only() {}
|
|
|
|
__attribute__((device)) void device() {
|
|
hd1();
|
|
hd2();
|
|
host_only(); // expected-error {{no matching function for call}}
|
|
}
|
|
|
|
#endif
|