|  | // 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; | 
|  | } |