// Test the setup without incremental extensions first // RUN: %clang_cc1 -std=c++17 -fdelayed-template-parsing -fpch-instantiate-templates %s -emit-pch -o %t.pch -verify // RUN: %clang_cc1 -std=c++17 -fdelayed-template-parsing -include-pch %t.pch %s -verify // RUN: %clang_cc1 -std=c++17 -fdelayed-template-parsing -fincremental-extensions -fpch-instantiate-templates %s -emit-pch -o %t.incremental.pch -verify // RUN: %clang_cc1 -std=c++17 -fdelayed-template-parsing -fincremental-extensions -include-pch %t.incremental.pch %s -verify // expected-no-diagnostics #ifndef PCH #define PCH // Have one template that is instantiated in the PCH (via the passed option // -fpch-instantiate-templates) and then serialized template T ft1() { return 0; } inline int f1() { return ft1(); } // Have a second late-parsed template that needs to be deserialized template T ft2() { return 0; } #else int f2() { return ft2(); } #endif