Mercurial > hg > CbC > CbC_llvm
view clang/test/PCH/delayed-pch-instantiate.cpp @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 2e18cbf3894f |
children |
line wrap: on
line source
// Test this without pch. // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -DBODY %s -o - | FileCheck %s // Test with pch. // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-pch -o %t %s // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -include-pch %t -DBODY %s -o - | FileCheck %s // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-pch -fpch-instantiate-templates -o %t %s // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -include-pch %t -DBODY %s -o - | FileCheck %s // expected-no-diagnostics #ifndef HEADER_H #define HEADER_H struct A { void foo() { bar<0>(); } // This will trigger implicit instantiation of bar<0>() in the PCH. template <int N> void bar(); }; #endif #ifdef BODY // But the definition is only in the source, so the instantiation must be delayed until the TU. template <int N> void A::bar() {} void test(A *a) { a->foo(); } #endif // CHECK: define linkonce_odr void @_ZN1A3barILi0EEEvv