| // RUN: %clang_cc1 -g -emit-llvm %s -o -| FileCheck %s |
| // |
| // Two variables with the same name in subsequent if staments need to be in separate scopes. |
| // |
| // rdar://problem/14024005 |
| // |
| |
| int printf(const char*, ...); |
| |
| char *return_char (int input) |
| { |
| if (input%2 == 0) |
| return "I am even.\n"; |
| else |
| return "I am odd.\n"; |
| } |
| |
| int main2() { |
| // CHECK: [ DW_TAG_auto_variable ] [ptr] [line [[@LINE+2]]] |
| // CHECK metadata !{i32 {{.*}}, metadata !{{.*}}, i32 [[@LINE+1]], {{.*}}} ; [ DW_TAG_lexical_block ] |
| if (char *ptr = return_char(1)) { |
| printf ("%s", ptr); |
| } |
| // CHECK: [ DW_TAG_auto_variable ] [ptr] [line [[@LINE+2]]] |
| // CHECK metadata !{i32 {{.*}}, metadata !{{.*}}, i32 [[@LINE+1]], {{.*}}} ; [ DW_TAG_lexical_block ] |
| if (char *ptr = return_char(2)) { |
| printf ("%s", ptr); |
| } |
| else printf ("%s", ptr); |
| |
| return 0; |
| } |