1*404b540aSrobert // PR c++/24502 2*404b540aSrobert // { dg-do run } 3*404b540aSrobert 4*404b540aSrobert extern "C" void abort (); 5*404b540aSrobert 6*404b540aSrobert template <typename T> T foo(T r)7*404b540aSrobertfoo (T r) 8*404b540aSrobert { 9*404b540aSrobert T i; 10*404b540aSrobert #pragma omp for 11*404b540aSrobert for (i = 0; i < 10; i++) 12*404b540aSrobert r += i; 13*404b540aSrobert return r; 14*404b540aSrobert } 15*404b540aSrobert 16*404b540aSrobert int main()17*404b540aSrobertmain () 18*404b540aSrobert { 19*404b540aSrobert if (foo (0) != 10 * 9 / 2 || foo (2L) != 10L * 9 / 2 + 2) 20*404b540aSrobert abort (); 21*404b540aSrobert return 0; 22*404b540aSrobert } 23