forked from OSchip/llvm-project
27 lines
717 B
C
27 lines
717 B
C
// RUN: %clang_cc1 -triple x86_64 -S -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s
|
|
//
|
|
// Verifies that clang-generated *.inline are removed when shadowed by an
|
|
// external definition, even when that definition appears at the end of the
|
|
// file.
|
|
|
|
// CHECK-NOT: strlen.inline
|
|
|
|
extern unsigned long strlen(char const *s);
|
|
|
|
extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__)) unsigned long strlen(char const *s) {
|
|
return 1;
|
|
}
|
|
|
|
static unsigned long chesterfield(char const *s) {
|
|
return strlen(s);
|
|
}
|
|
static unsigned long (*_strlen)(char const *ptr);
|
|
|
|
unsigned long blutch(char const *s) {
|
|
return chesterfield(s);
|
|
}
|
|
|
|
unsigned long strlen(char const *s) {
|
|
return _strlen(s);
|
|
}
|