1 template <class T
> class FOO
{
11 template <class T
> T FOO
<T
>::DoIt(T ti
) { // HEADER: [[@LINE]]| 2|template
12 for (T I
= 0; I
< ti
; I
++) { // HEADER: [[@LINE]]| 22| for (T
13 t
+= I
; // HEADER: [[@LINE]]| 20| t += I;
14 if (I
> ti
/ 2) // HEADER: [[@LINE]]| 20| if (I > ti
15 t
-= 1; // HEADER: [[@LINE]]| 20| t -= 1;
16 } // HEADER: [[@LINE]]| 20| }
17 // HEADER: [[@LINE]]| 2|
18 return t
; // HEADER: [[@LINE]]| 2| return t;
21 // To generate the binaries which correspond to this file, you must first
22 // compile a program with two calls to Foo<int>::DoIt(10) for each desired
23 // architecture. Collect a raw profile from any one of these binaries, index
24 // it, and check it in along with the executables.
27 // The line execution count on line 14 is incorrect because of a bug in the
28 // checked-in coverage mappings, which has subsequently been fixed in clang.