85 lines · c
1// Basic compilation for various types of files.2// RUN: %clang -target i386-unknown-unknown -ccc-print-phases -x c %s -x objective-c %s -x c++ %s -x objective-c++ -x assembler %s -x assembler-with-cpp %s -x none %s 2>&1 | FileCheck -check-prefix=BASIC %s3// BASIC: 0: input, "{{.*}}phases.c", c4// BASIC: 1: preprocessor, {0}, cpp-output5// BASIC: 2: compiler, {1}, ir6// BASIC: 3: backend, {2}, assembler7// BASIC: 4: assembler, {3}, object8// BASIC: 5: input, "{{.*}}phases.c", objective-c9// BASIC: 6: preprocessor, {5}, objective-c-cpp-output10// BASIC: 7: compiler, {6}, ir11// BASIC: 8: backend, {7}, assembler12// BASIC: 9: assembler, {8}, object13// BASIC: 10: input, "{{.*}}phases.c", c++14// BASIC: 11: preprocessor, {10}, c++-cpp-output15// BASIC: 12: compiler, {11}, ir16// BASIC: 13: backend, {12}, assembler17// BASIC: 14: assembler, {13}, object18// BASIC: 15: input, "{{.*}}phases.c", assembler19// BASIC: 16: assembler, {15}, object20// BASIC: 17: input, "{{.*}}phases.c", assembler-with-cpp21// BASIC: 18: preprocessor, {17}, assembler22// BASIC: 19: assembler, {18}, object23// BASIC: 20: input, "{{.*}}phases.c", c24// BASIC: 21: preprocessor, {20}, cpp-output25// BASIC: 22: compiler, {21}, ir26// BASIC: 23: backend, {22}, assembler27// BASIC: 24: assembler, {23}, object28// BASIC: 25: linker, {4, 9, 14, 16, 19, 24}, image29 30// Universal linked image.31// RUN: %clang -target i386-apple-darwin9 -ccc-print-phases -x c %s -arch arm -arch i386 2>&1 | FileCheck -check-prefix=ULI %s32// ULI: 0: input, "{{.*}}phases.c", c33// ULI: 1: preprocessor, {0}, cpp-output34// ULI: 2: compiler, {1}, ir35// ULI: 3: backend, {2}, assembler36// ULI: 4: assembler, {3}, object37// ULI: 5: linker, {4}, image38// ULI: 6: bind-arch, "arm", {5}, image39// ULI: 7: bind-arch, "i386", {5}, image40// ULI: 8: lipo, {6, 7}, image41 42// Universal object file.43// RUN: %clang -target i386-apple-darwin9 -ccc-print-phases -c -x c %s -arch arm -arch i386 2>&1 | FileCheck -check-prefix=UOF %s44// UOF: 0: input, "{{.*}}phases.c", c45// UOF: 1: preprocessor, {0}, cpp-output46// UOF: 2: compiler, {1}, ir47// UOF: 3: backend, {2}, assembler48// UOF: 4: assembler, {3}, object49// UOF: 5: bind-arch, "arm", {4}, object50// UOF: 6: bind-arch, "i386", {4}, object51// UOF: 7: lipo, {5, 6}, object52 53// Arch defaulting54// RUN: %clang -target i386-apple-darwin9 -ccc-print-phases -c -x assembler %s 2>&1 | FileCheck -check-prefix=ARCH1 %s55// ARCH1: 2: bind-arch, "i386", {1}, object56// RUN: %clang -target i386-apple-darwin9 -ccc-print-phases -c -x assembler %s -m32 -m64 2>&1 | FileCheck -check-prefix=ARCH2 %s57// ARCH2: 2: bind-arch, "x86_64", {1}, object58// RUN: %clang -target x86_64-apple-darwin9 -ccc-print-phases -c -x assembler %s 2>&1 | FileCheck -check-prefix=ARCH3 %s59// ARCH3: 2: bind-arch, "x86_64", {1}, object60// RUN: %clang -target x86_64-apple-darwin9 -ccc-print-phases -c -x assembler %s -m64 -m32 2>&1 | FileCheck -check-prefix=ARCH4 %s61// ARCH4: 2: bind-arch, "i386", {1}, object62 63// Analyzer64// RUN: %clang -target i386-unknown-unknown -ccc-print-phases --analyze %s 2>&1 | FileCheck -check-prefix=ANALYZE %s65// ANALYZE: 0: input, "{{.*}}phases.c", c66// ANALYZE: 1: preprocessor, {0}, cpp-output67// ANALYZE: 2: analyzer, {1}, plist68 69// Precompiler70// RUN: %clang -target i386-unknown-unknown -ccc-print-phases -x c-header %s 2>&1 | FileCheck -check-prefix=PCH %s71// PCH: 0: input, "{{.*}}phases.c", c-header72// PCH: 1: preprocessor, {0}, c-header-cpp-output73// PCH: 2: precompiler, {1}, precompiled-header74 75// Darwin overrides the handling for .s76// RUN: touch %t.s77// RUN: %clang -target i386-unknown-unknown -ccc-print-phases -c %t.s 2>&1 | FileCheck -check-prefix=DARWIN1 %s78// DARWIN1: 0: input, "{{.*}}.s", assembler79// DARWIN1: 1: assembler, {0}, object80// RUN: %clang -target i386-apple-darwin9 -ccc-print-phases -c %t.s 2>&1 | FileCheck -check-prefix=DARWIN2 %s81// DARWIN2: 0: input, "{{.*}}.s", assembler-with-cpp82// DARWIN2: 1: preprocessor, {0}, assembler83// DARWIN2: 2: assembler, {1}, object84 85