summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C
blob: b681a1fcbd9f35ef192868f52353d1c6c369448d (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
// Check that __cxa_vec_[c]ctor returns a pointer to the array
// { dg-do run { target arm*-*-* } }

#include <cxxabi.h>

#ifdef ___ARM_EABI__
static void cctor (void * a, void * b)
{
  *(char *) a = *(char *) b
}

int main()
{
  char data;
  char data2;
  char *p;

  p = __cxa_vec_ctor (&data, 1, 1, NULL, NULL);
  if (p != &data)
    return 1;
  p = __cxa_vec_cctor (&data2, &data, 1, 1, cctor, NULL);
  if (p != &data2)
    return 1;

  return 0;
}
#else
int main()
{
  return 0;
}
#endif