Author: Iain Sandoe Date: 2022-07-25T12:20:02+01:00 New Revision: b826567136e391095b7731d5121e2be2a8fdc9ee
URL: https://github.com/llvm/llvm-project/commit/b826567136e391095b7731d5121e2be2a8fdc9ee DIFF: https://github.com/llvm/llvm-project/commit/b826567136e391095b7731d5121e2be2a8fdc9ee.diff LOG: [C++20][Modules] Add a testcase for [basic.link] p10 [NFC]. This adds a testcase based on example 2 from the basic.link section of the standard. Added: clang/test/CXX/basic/basic.link/p10-ex2.cpp Modified: Removed: ################################################################################ diff --git a/clang/test/CXX/basic/basic.link/p10-ex2.cpp b/clang/test/CXX/basic/basic.link/p10-ex2.cpp new file mode 100644 index 0000000000000..322785ecbbf12 --- /dev/null +++ b/clang/test/CXX/basic/basic.link/p10-ex2.cpp @@ -0,0 +1,35 @@ +// RUN: rm -rf %t +// RUN: mkdir -p %t +// RUN: split-file %s %t +// RUN: cd %t +// +// RUN: %clang_cc1 -std=c++20 M.cpp -fsyntax-only -DTEST_INTERFACE -verify +// RUN: %clang_cc1 -std=c++20 M.cpp -emit-module-interface -o M.pcm +// RUN: %clang_cc1 -std=c++20 useM.cpp -fsyntax-only -fmodule-file=M.pcm -verify + +//--- decls.h +int f(); // #1, attached to the global module +int g(); // #2, attached to the global module + +//--- M.cpp +module; +#include "decls.h" +export module M; +export using ::f; // OK, does not declare an entity, exports #1 +#if TEST_INTERFACE +// error: matches #2, but attached to M +int g(); // expected-error {{declaration of 'g' in module M follows declaration in the global module}} +// expected-note@decls.h:2 {{previous declaration is here}} +#endif +export int h(); // #3 +export int k(); // #4 + +//--- useM.cpp +import M; +// error: matches #3 +static int h(); // expected-error {{static declaration of 'h' follows non-static declaration}} +// expected-n...@m.cpp:10 {{previous declaration is here}} + +// error: matches #4 +int k(); // expected-error {{declaration of 'k' in the global module follows declaration in module M}} +// expected-n...@m.cpp:11 {{previous declaration is here}} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits