blob: 5bbd885fc08b9dbd084fabd24aa99d3d4d623c2f [file] [log] [blame]
/* APPLE LOCAL file Radar 4591706 */
/* Test generation of DWARF call site information for inlined subroutines
in C++ */
// { dg-do compile }
// { dg-options "-Os -gdwarf-2 -dA" }
// { dg-final { scan-assembler "\[#@;!/|\]+\[ \t\]+DW_AT_call_line" } }
#include <algorithm>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include "time-sort.h"
int main()
{
universal_time t0;
unsigned N = 1000000;
std::string* p = new std::string[N];
universal_time t1;
for (unsigned i = 0; i < N; ++i)
{
char buf[40];
std::sprintf(buf, "12345678901234567890%u", i);
p[i] = buf;
}
universal_time t2;
std::random_shuffle(p, p+N);
universal_time t3;
std::sort(p, p+N);
universal_time t4;
delete [] p;
universal_time t5;
std::printf("\nN = %u\n", N);
elapsed_time d = t1 - t0;
std::printf("default construction time = %f\n", d.sec_ + d.nsec_/1.e9);
d = t2 - t1;
std::printf("assign time = %f\n", d.sec_ + d.nsec_/1.e9);
d = t3 - t2;
std::printf("random_shuffle time = %f\n", d.sec_ + d.nsec_/1.e9);
d = t4 - t3;
std::printf("sort time = %f\n", d.sec_ + d.nsec_/1.e9);
d = t5 - t4;
std::printf("destruct time = %f\n", d.sec_ + d.nsec_/1.e9);
d = t5 - t0;
std::printf("total time = %f\n", d.sec_ + d.nsec_/1.e9);
}