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