xref: /llvm-project/clang/test/CodeGen/strlen-inline-builtin-redecl.c (revision c5de4dd1eab00df76c1a68c5f397304ceacb71f2)
1 // RUN: %clang_cc1 -triple x86_64 -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s
2 //
3 // Verifies that clang-generated *.inline are removed when shadowed by an external definition
4 
5 // CHECK-NOT: strlen.inline
6 
7 unsigned long strnlen(const char *, unsigned long);
8 void fortify_panic(const char *);
9 
strlen(const char * p)10 extern inline __attribute__((always_inline)) __attribute__((gnu_inline)) unsigned long strlen(const char *p) {
11   return 1;
12 }
mystrlen(char const * s)13 unsigned long mystrlen(char const *s) {
14   return strlen(s);
15 }
strlen(const char * s)16 unsigned long strlen(const char *s) {
17   return 2;
18 }
yourstrlen(char const * s)19 unsigned long yourstrlen(char const *s) {
20   return strlen(s);
21 }
22