aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/gcov/pr16855.C
blob: d7aa8a4f72cb01774464ebd534422273a0b566c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
/* { dg-do run { target native } } */

#include <stdlib.h>
#include <stdio.h>

int a;

void
foo ()
{
  fprintf (stderr, "In foo\n");
  a = 123; /* count(1) */
}

using namespace std;
class Test
{
public:
  Test (void) { fprintf (stderr, "In Test::Test\n"); /* count(1) */ }
  ~Test (void) { fprintf (stderr, "In Test::~Test\n"); /* count(1) */ }
} T1;

void
uncalled (void)
{
  fprintf (stderr, "In uncalled\n"); /* count(#####) */
}

int
main (void)
{
  atexit (&foo);
  fprintf (stderr, "In main\n"); /* count(1) */
  return 0;
}

static void __attribute__ ((constructor)) ctor_default ()
{
  fprintf (stderr, "in constructor(())\n"); /* count(1) */
}

static void __attribute__ ((destructor)) dtor_default ()
{
  fprintf (stderr, "in destructor(())\n"); /* count(1) */
}

/* { dg-final { run-gcov branches { -b pr16855.C } } } */