1 // This test is the PCH version of Modules/codegen-flags.test . It uses its inputs. 2 // The purpose of this test is just verify that the codegen options work with PCH as well. 3 // All the codegen functionality should be tested in Modules/. 4 5 // RUN: rm -rf %t 6 // RUN: mkdir -p %t 7 // REQUIRES: x86-registered-target 8 9 // RUN: %clang_cc1 -triple=x86_64-linux-gnu -fmodules-codegen -x c++-header -building-pch-with-obj -emit-pch %S/../Modules/Inputs/codegen-flags/foo.h -o %t/foo-cg.pch 10 // RUN: %clang_cc1 -triple=x86_64-linux-gnu -fmodules-debuginfo -x c++-header -building-pch-with-obj -emit-pch %S/../Modules/Inputs/codegen-flags/foo.h -o %t/foo-di.pch 11 12 // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -debug-info-kind=limited -o - %s -include-pch %t/foo-cg.pch -building-pch-with-obj -fmodules-codegen | FileCheck --check-prefix=CG %s 13 // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -debug-info-kind=limited -o - %s -include-pch %t/foo-di.pch -building-pch-with-obj -fmodules-debuginfo | FileCheck --check-prefix=DI %s 14 15 // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -debug-info-kind=limited -o - -include-pch %t/foo-cg.pch %S/../Modules/Inputs/codegen-flags/use.cpp | FileCheck --check-prefix=CG-USE %s 16 // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -debug-info-kind=limited -o - -include-pch %t/foo-di.pch %S/../Modules/Inputs/codegen-flags/use.cpp | FileCheck --check-prefix=DI-USE %s 17 18 // CG: define weak_odr void @_Z2f1v 19 // CG: DICompileUnit 20 // CG-NOT: DICompositeType 21 22 // CG-USE: declare void @_Z2f1v 23 // CG-USE: DICompileUnit 24 // CG-USE: distinct !DICompositeType(tag: DW_TAG_structure_type, name: "foo" 25 26 // DI-NOT: define 27 // DI: distinct !DICompositeType(tag: DW_TAG_structure_type, name: "foo" 28 29 // DI-USE: define linkonce_odr void @_Z2f1v 30 // DI-USE: = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", {{.*}}, flags: DIFlagFwdDecl 31