1*1745ba41SBalázs Kéri // RUN: %clang_analyze_cc1 -verify %s \
2*1745ba41SBalázs Kéri // RUN:   -analyzer-checker=security
3*1745ba41SBalázs Kéri 
4*1745ba41SBalázs Kéri void bzero(void *, unsigned long);
5*1745ba41SBalázs Kéri 
foo(T l)6*1745ba41SBalázs Kéri template <typename T> void foo(T l) {
7*1745ba41SBalázs Kéri   // The warning comes from multiple instances and with
8*1745ba41SBalázs Kéri   // different declarations that have same source location.
9*1745ba41SBalázs Kéri   // One instance should be shown.
10*1745ba41SBalázs Kéri   bzero(l, 1); // expected-warning{{The bzero() function is obsoleted}}
11*1745ba41SBalázs Kéri }
12*1745ba41SBalázs Kéri 
p(int * p,unsigned * q)13*1745ba41SBalázs Kéri void p(int *p, unsigned *q) {
14*1745ba41SBalázs Kéri   foo(p);
15*1745ba41SBalázs Kéri   foo(q);
16*1745ba41SBalázs Kéri }
17