13ce0e92fSAlex Richardson // Basic C++ test for update_cc_test_checks 2*b16a3b4fSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -triple=x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s 33ce0e92fSAlex Richardson 43ce0e92fSAlex Richardson class Foo { 53ce0e92fSAlex Richardson int x; 63ce0e92fSAlex Richardson 73ce0e92fSAlex Richardson public: 83ce0e92fSAlex Richardson explicit Foo(int x); 93ce0e92fSAlex Richardson ~Foo(); function_defined_inline(int arg) const103ce0e92fSAlex Richardson inline int function_defined_inline(int arg) const { 113ce0e92fSAlex Richardson return arg + x; 123ce0e92fSAlex Richardson } 133ce0e92fSAlex Richardson inline int function_defined_out_of_line(int arg) const; 143ce0e92fSAlex Richardson }; 153ce0e92fSAlex Richardson Foo(int x)163ce0e92fSAlex RichardsonFoo::Foo(int x) : x(x) {} ~Foo()173ce0e92fSAlex RichardsonFoo::~Foo() {} function_defined_out_of_line(int arg) const183ce0e92fSAlex Richardsonint Foo::function_defined_out_of_line(int arg) const { return x - arg; } 193ce0e92fSAlex Richardson 203ce0e92fSAlex Richardson // Call the inline methods to ensure the LLVM IR is generated: main()213ce0e92fSAlex Richardsonint main() { 223ce0e92fSAlex Richardson Foo f(1); 233ce0e92fSAlex Richardson f.function_defined_inline(2); 243ce0e92fSAlex Richardson f.function_defined_out_of_line(3); 253ce0e92fSAlex Richardson } 26