OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [opt/] [inline14.C] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 693 jeremybenn
// PR middle-end/34018
2
// { dg-do compile }
3
// { dg-options "-O1" }
4
 
5
template 
6
struct A
7
{
8
  typedef E F;
9
  E elems[N];
10
  A () {}
11
  E *begin () { return elems; }
12
  const E *begin () const { return elems; }
13
 
14
  explicit A (F const &v0, F const &v1, F const &v2)
15
  {
16
    elems[0] = v0;
17
    elems[1] = v1;
18
    elems[2] = v2;
19
  }
20
};
21
 
22
template 
23
inline void
24
bar (const E1 *a1, E2 const &a2, E3 *a3, unsigned long const &sz)
25
{
26
  E3 *r = a3 + sz;
27
  for (;a3 != r; a1++, a3++)
28
    *a3 = *a1 - a2;
29
}
30
 
31
template
32
inline A
33
operator- (A const& a1, E const& a2)
34
{
35
  typedef A G;
36
  G a3;
37
  bar (a1.begin (), a2, a3.begin (), N);
38
  return a3;
39
}
40
 
41
struct B
42
{
43
  B (A const &m) : n (m - static_cast(1)) {}
44
  A n;
45
};
46
 
47
void
48
foo ()
49
{
50
  B t (A (0,0,0));
51
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.