brintos

brintos / llvm-project-archived public Read only

0
0
Text · 945 B · d17235e Raw
37 lines · cpp
1// RUN: %clang_cc1 -triple=i386-pc-solaris2.11 -w -emit-llvm %s -o - | FileCheck %s2 3extern "C" {4  struct statvfs64 {5    int f;6  };7#pragma redefine_extname statvfs64 statvfs8  int statvfs64(struct statvfs64 *);9}10 11void some_func() {12  struct statvfs64 st;13  statvfs64(&st);14// Check that even if there is a structure with redefined name before the15// pragma, subsequent function name redefined properly. PR5172, Comment 11.16// CHECK:  call i32 @statvfs(ptr noundef %st)17}18 19// This is a case when redefenition is deferred *and* we have a local of the20// same name. PR23923.21#pragma redefine_extname foo bar22int f() {23  int foo = 0;24  return foo;25}26extern "C" {27  int foo() { return 1; }28// CHECK: define{{.*}} i32 @bar()29}30 31// Check that #pragma redefine_extname applies to C code only, and shouldn't be32// applied to C++.33#pragma redefine_extname foo_cpp bar_cpp34extern int foo_cpp() { return 1; }35// CHECK-NOT: define{{.*}} i32 @bar_cpp()36 37