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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.dg/] [ext/] [attribute-test-3.C] - Blame information for rev 823

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

Line No. Rev Author Line
1 149 jeremybenn
// { dg-do run }
2
 
3
#define vector __attribute__((vector_size(16)))
4
 
5
extern "C" void abort();
6
 
7
class Star
8
{
9
  public:
10
        inline vector float foo() const;
11
 
12
        Star()
13
          {
14
            data.f[0] = 1.0; data.f[1] = 2.0; data.f[2] = 3.0, data.f[3] = 4.0;
15
          }
16
 
17
  private:
18
         union {
19
              float f[4];
20
              vector float v;
21
         } data;
22
 
23
        friend vector float fTest(const Star &);
24
};
25
 
26
vector float Star::foo() const  // { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } }
27
{
28
    return data.v;
29
}
30
 
31
vector float fTest(const Star & val)
32
{
33
    vector float vf = val.foo();
34
    return vf;
35
}
36
 
37
int main() {
38
 
39
  Star s;
40
 
41
  union u {
42
              float f[4];
43
              vector float v;
44
  } data;
45
 
46
  data.v = fTest(s);
47
  for (int i=0 ; i < 4; i++)
48
     if (data.f[i] != (float)(i+1))
49
       abort();
50
  return 0;
51
}
52
 
53
 
54
 
55
 

powered by: WebSVN 2.1.0

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