Clang Project

clang_source_code/test/Driver/darwin-dsymutil.c
1// Check that we run dsymutil properly with multiple -arch options.
2//
3// RUN: %clang -target x86_64-apple-darwin10 -ccc-print-phases \
4// RUN:   -arch i386 -arch x86_64 %s -g 2> %t
5// RUN: FileCheck -check-prefix=CHECK-MULTIARCH-ACTIONS < %t %s
6//
7// CHECK-MULTIARCH-ACTIONS: 0: input, "{{.*}}darwin-dsymutil.c", c
8// CHECK-MULTIARCH-ACTIONS: 1: preprocessor, {0}, cpp-output
9// CHECK-MULTIARCH-ACTIONS: 2: compiler, {1}, ir
10// CHECK-MULTIARCH-ACTIONS: 3: backend, {2}, assembler
11// CHECK-MULTIARCH-ACTIONS: 4: assembler, {3}, object
12// CHECK-MULTIARCH-ACTIONS: 5: linker, {4}, image
13// CHECK-MULTIARCH-ACTIONS: 6: bind-arch, "i386", {5}, image
14// CHECK-MULTIARCH-ACTIONS: 7: bind-arch, "x86_64", {5}, image
15// CHECK-MULTIARCH-ACTIONS: 8: lipo, {6, 7}, image
16// CHECK-MULTIARCH-ACTIONS: 9: dsymutil, {8}, dSYM
17//
18// RUN: %clang -target x86_64-apple-darwin10 -ccc-print-bindings \
19// RUN:   -arch i386 -arch x86_64 %s -g 2> %t
20// RUN: FileCheck -check-prefix=CHECK-MULTIARCH-BINDINGS < %t %s
21//
22// CHECK-MULTIARCH-BINDINGS: "x86_64-apple-darwin10" - "darwin::Lipo", inputs: [{{.*}}, {{.*}}], output: "a.out"
23// CHECK-MULTIARCH-BINDINGS: # "x86_64-apple-darwin10" - "darwin::Dsymutil", inputs: ["a.out"], output: "a.out.dSYM"
24
25// Check output name derivation.
26//
27// RUN: %clang -target x86_64-apple-darwin10 -ccc-print-bindings \
28// RUN:   -o foo %s -g 2> %t
29// RUN: FileCheck -check-prefix=CHECK-OUTPUT-NAME < %t %s
30//
31// CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Linker", inputs: [{{.*}}], output: "foo"
32// CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Dsymutil", inputs: ["foo"], output: "foo.dSYM"
33
34// Check that we only use dsymutil when needed.
35//
36// RUN: touch %t.o
37// RUN: %clang -target x86_64-apple-darwin10 -ccc-print-bindings \
38// RUN:   -o foo %t.o -g 2> %t
39// RUN: not grep "Dsymutil" %t
40
41// Check that we put the .dSYM in the right place.
42// RUN: %clang -target x86_64-apple-darwin10 -ccc-print-bindings \
43// RUN:   -o bar/foo %s -g 2> %t
44// RUN: FileCheck -check-prefix=CHECK-LOCATION < %t %s
45
46// CHECK-LOCATION: "x86_64-apple-darwin10" - "darwin::Dsymutil", inputs: ["bar/foo"], output: "bar/foo.dSYM"
47
48// Check that we don't crash when translating arguments for dsymutil.
49// RUN: %clang -m32 -arch x86_64 -g %s -###
50