// RUN: %clang_cc1 -triple=i386-pc-solaris2.11 -w -emit-llvm %s -o - | FileCheck %s extern "C" { struct statvfs64 { int f; }; #pragma redefine_extname statvfs64 statvfs int statvfs64(struct statvfs64 *); } void some_func() { struct statvfs64 st; statvfs64(&st); // Check that even if there is a structure with redefined name before the // pragma, subsequent function name redefined properly. PR5172, Comment 11. // CHECK: call i32 @statvfs(%struct.statvfs64* %st) } // This is a case when redefenition is deferred *and* we have a local of the // same name. PR23923. #pragma redefine_extname foo bar int f() { int foo = 0; return foo; } extern "C" { int foo() { return 1; } // CHECK: define{{.*}} i32 @bar() } // Check that #pragma redefine_extname applies to C code only, and shouldn't be // applied to C++. #pragma redefine_extname foo_cpp bar_cpp extern int foo_cpp() { return 1; } // CHECK-NOT: define{{.*}} i32 @bar_cpp()