1 // FIXME: The standalone module still seems to cause clang to want to test for
2 // the existence of a 'foo' directory:
3 // RUN: rm -rf %t
4 // RUN: mkdir %t
5 // RUN: cp %s %t
6 // RUN: rm -rf %t/foo
7 // RUN: mkdir %t/foo
8 // RUN: cd %t
9 // RUN: not %clang_cc1 -fmodules -fsyntax-only %s 2>&1 | FileCheck %s
10 
11 // CHECK: error: no matching function for call to 'foo'
12 // CHECK: note: candidate function not viable: requires 0 arguments, but 1 was provided
13 
14 // FIXME: This should use -verify, but it seems it doesn't hook up the
15 // SourceManager correctly or something, and the foo.h note gets attributed to
16 // the synthetic module translation unit "foo.map Line 2:...".
17 // %clang_cc1 -fmodules -verify %s
18 
19 #pragma clang module build foo
20 module foo {
21   umbrella "foo"
22   module * {
23     export *
24   }
25 }
26 #pragma clang module contents
27 #pragma clang module begin foo.foo
28 # 1 "foo.h" 1
29 #ifndef FOO_FOO_H
30 void foo();
31 #endif
32 #pragma clang module end
33 #pragma clang module endbuild
34 #pragma clang module import foo.foo
35 // expected-note@foo.h:2 {{candidate function not viable: requires 0 arguments, but 1 was provided}}
main()36 int main() {
37   foo(1); // expected-error {{no matching function for call to 'foo'}}
38 }
39