1 // Tests that the member function with-in an class definition in the header unit is still implicit inline.
2 // RUN: rm -rf %t
3 // RUN: split-file %s %t
4 //
5 // RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple -xc++-user-header -emit-header-unit %t/foo.h -o %t/foo.pcm
6 // RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple -fmodule-file=%t/foo.pcm %t/user.cpp \
7 // RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %t/user.cpp
8
9 //--- foo.h
10 class foo {
11 public:
getValue()12 int getValue() {
13 return 43;
14 }
15 };
16
17 //--- user.cpp
18 import "foo.h";
use()19 int use() {
20 foo f;
21 return f.getValue();
22 }
23
24 // CHECK: define{{.*}}linkonce_odr{{.*}}@_ZN3foo8getValueEv
25