12875bda1505bce995f745002affb20862765ed04Chad Rosier// Check to make sure clang is somewhat picky about -g options.
22875bda1505bce995f745002affb20862765ed04Chad Rosier// rdar://10383444
32875bda1505bce995f745002affb20862765ed04Chad Rosier
4e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -g %s -target x86_64-linux-gnu 2>&1 \
5e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G %s
6e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -g2 %s -target x86_64-linux-gnu 2>&1 \
7e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G %s
8e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -g3 %s -target x86_64-linux-gnu 2>&1 \
9e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G %s
10e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -ggdb %s -target x86_64-linux-gnu 2>&1 \
11e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G %s
12e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -ggdb1 %s -target x86_64-linux-gnu 2>&1 \
13e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G %s
14e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -ggdb3 %s -target x86_64-linux-gnu 2>&1 \
15e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G %s
16e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren
17e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -g %s -target x86_64-apple-darwin 2>&1 \
18e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G_DARWIN %s
19e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -g2 %s -target x86_64-apple-darwin 2>&1 \
20e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G_DARWIN %s
21e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -g3 %s -target x86_64-apple-darwin 2>&1 \
22e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G_DARWIN %s
23e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -ggdb %s -target x86_64-apple-darwin 2>&1 \
24e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G_DARWIN %s
25e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -ggdb1 %s -target x86_64-apple-darwin 2>&1 \
26e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G_DARWIN %s
27e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -ggdb3 %s -target x86_64-apple-darwin 2>&1 \
28e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren                    | FileCheck -check-prefix=G_DARWIN %s
29e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren
30fc0f91cf0673775ce4b8b174dbb05ad2e4e6cd01Manman Ren// RUN: %clang -### -c -gdwarf-2 %s 2>&1 | FileCheck -check-prefix=G_D2 %s
317f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov//
327f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// RUN: %clang -### -c -gfoo %s 2>&1 | FileCheck -check-prefix=G_NO %s
337f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// RUN: %clang -### -c -g -g0 %s 2>&1 | FileCheck -check-prefix=G_NO %s
347f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// RUN: %clang -### -c -ggdb0 %s 2>&1 | FileCheck -check-prefix=G_NO %s
357f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov//
36651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang -### -c -gmlt %s 2>&1 \
37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN:             | FileCheck -check-prefix=GLTO_ONLY %s
38fd00eecad6fa5400cf37269d84361a0551d0e6d3Alexey Samsonov// RUN: %clang -### -c -gline-tables-only %s 2>&1 \
397f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// RUN:             | FileCheck -check-prefix=GLTO_ONLY %s
40651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang -### -c -gline-tables-only %s -target x86_64-apple-darwin 2>&1 \
41ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s
42ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: %clang -### -c -gline-tables-only %s -target i686-pc-openbsd 2>&1 \
43ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s
44ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: %clang -### -c -gline-tables-only %s -target x86_64-pc-freebsd10.0 2>&1 \
45ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s
46e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-linux-gnu 2>&1 \
477f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// RUN:             | FileCheck -check-prefix=G_ONLY %s
48e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-apple-darwin 2>&1 \
49ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN:             | FileCheck -check-prefix=G_ONLY_DWARF2 %s
50ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: %clang -### -c -gline-tables-only -g %s -target i686-pc-openbsd 2>&1 \
51ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN:             | FileCheck -check-prefix=G_ONLY_DWARF2 %s
52ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-pc-freebsd10.0 2>&1 \
53ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN:             | FileCheck -check-prefix=G_ONLY_DWARF2 %s
54a9cd83b1ddfa7d05e2887f59532e59e626b03ef6Alexey Samsonov// RUN: %clang -### -c -gline-tables-only -g0 %s 2>&1 \
557f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// RUN:             | FileCheck -check-prefix=GLTO_NO %s
567f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov//
57967d833784786324f8ae62d2042cba363f1b658fBenjamin Kramer// RUN: %clang -### -c -grecord-gcc-switches -gno-record-gcc-switches \
58651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN:        -gstrict-dwarf -gno-strict-dwarf %s 2>&1 \
59e7d9464fe4a486d2b86223bd70a6f666e5e27468Eric Christopher// RUN:        | FileCheck -check-prefix=GIGNORE %s
602875bda1505bce995f745002affb20862765ed04Chad Rosier//
610f43a6daddd41722a4183a49b344f85b5aefbb33Eric Christopher// RUN: %clang -### -c -ggnu-pubnames %s 2>&1 | FileCheck -check-prefix=GOPT %s
620f43a6daddd41722a4183a49b344f85b5aefbb33Eric Christopher//
63651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang -### -c -gdwarf-aranges %s 2>&1 | FileCheck -check-prefix=GARANGE %s
64651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
65651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang -### -fdebug-types-section %s 2>&1 \
66651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN:        | FileCheck -check-prefix=FDTS %s
67651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
68651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang -### -fdebug-types-section -fno-debug-types-section %s 2>&1 \
69651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN:        | FileCheck -check-prefix=NOFDTS %s
70651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
71651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
722875bda1505bce995f745002affb20862765ed04Chad Rosier// G: "-cc1"
73e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// G: "-g"
74e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren//
75e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// G_DARWIN: "-cc1"
76e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// G_DARWIN: "-gdwarf-2"
77651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
78fc0f91cf0673775ce4b8b174dbb05ad2e4e6cd01Manman Ren// G_D2: "-cc1"
79fc0f91cf0673775ce4b8b174dbb05ad2e4e6cd01Manman Ren// G_D2: "-gdwarf-2"
802875bda1505bce995f745002affb20862765ed04Chad Rosier//
817f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// G_NO: "-cc1"
827f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// G_NO-NOT: "-g"
83a9cd83b1ddfa7d05e2887f59532e59e626b03ef6Alexey Samsonov//
847f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// GLTO_ONLY: "-cc1"
857f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// GLTO_ONLY-NOT: "-g"
867f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// GLTO_ONLY: "-gline-tables-only"
877f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// GLTO_ONLY-NOT: "-g"
88a9cd83b1ddfa7d05e2887f59532e59e626b03ef6Alexey Samsonov//
89ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// GLTO_ONLY_DWARF2: "-cc1"
90ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// GLTO_ONLY_DWARF2-NOT: "-g"
91ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// GLTO_ONLY_DWARF2: "-gline-tables-only"
92ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// GLTO_ONLY_DWARF2: "-gdwarf-2"
93ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// GLTO_ONLY_DWARF2-NOT: "-g"
94651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
957f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// G_ONLY: "-cc1"
967f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// G_ONLY-NOT: "-gline-tables-only"
97e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren// G_ONLY: "-g"
987f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// G_ONLY-NOT: "-gline-tables-only"
99a9cd83b1ddfa7d05e2887f59532e59e626b03ef6Alexey Samsonov//
100ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// G_ONLY_DWARF2: "-cc1"
101ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// G_ONLY_DWARF2-NOT: "-gline-tables-only"
102ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// G_ONLY_DWARF2: "-gdwarf-2"
103ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// G_ONLY_DWARF2-NOT: "-gline-tables-only"
104e7830480e20e810d1cb2352a8ccc5f63ecf79e27Manman Ren//
1057f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// GLTO_NO: "-cc1"
1067f3260764a3614e22dcf24d71c1155f14a9b4e6eAlexey Samsonov// GLTO_NO-NOT: "-gline-tables-only"
107e7d9464fe4a486d2b86223bd70a6f666e5e27468Eric Christopher//
108e7d9464fe4a486d2b86223bd70a6f666e5e27468Eric Christopher// GIGNORE-NOT: "argument unused during compilation"
1090f43a6daddd41722a4183a49b344f85b5aefbb33Eric Christopher//
1100f43a6daddd41722a4183a49b344f85b5aefbb33Eric Christopher// GOPT: -generate-gnu-dwarf-pub-sections
111651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
112651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// GARANGE: -generate-arange-section
113651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
114651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// FDTS: "-backend-option" "-generate-type-units"
115651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
116651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// NOFDTS-NOT: "-backend-option" "-generate-type-units"
117