blob: 4de9b583dac8dadc85df34c2b660f2ad439bdc82 [file] [log] [blame]
// RUN: rm -rf %t
// RUN: mkdir -p %t
// RUN: split-file %s %t
//
// RUN: %clang -std=c++20 %t/a.cppm --precompile -o %t/a.pcm \
// RUN: -DTEST_INLINE
// RUN: %clang -std=c++20 %t/test.cc -fprebuilt-module-path=%t -fsyntax-only -Xclang -verify \
// RUN: -DTEST_INLINE
//
// RUN: %clang -std=c++20 %t/a.cppm --precompile -o %t/a.pcm
// RUN: %clang -std=c++20 %t/test.cc -fprebuilt-module-path=%t -fsyntax-only -Xclang -verify
//--- a.h
#ifdef TEST_INLINE
#define INLINE inline
#else
#define INLINE
#endif
static INLINE void func(long) {}
template <typename T = long> void a() { func(T{}); }
//--- a.cppm
module;
#include "a.h"
export module a;
export using ::a;
//--- test.cc
import a;
auto m = (a(), 0);
#ifdef TEST_INLINE
// expected-no-diagnostics
#else
// expected-error@a.h:7 {{no matching function for call to 'func'}}
// expected-note@test.cc:2 {{in instantiation of function template specialization 'a<long>' requested here}}
#endif