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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.pt/] [spec36.C] - Blame information for rev 699

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 699 jeremybenn
// { dg-do run  }
2
// Copyright (C) 2000 Free Software Foundation, Inc.
3
// Contributed by Nathan Sidwell 18 Jan 2001 
4
 
5
// Bug 1617. We didn't resolve partial ordering properly. The std is rather
6
// vague about it anyway, DR 214 talks about this.
7
 
8
extern "C" int puts (char const *);
9
 
10
template  int Foo (T *) {puts (__PRETTY_FUNCTION__); return 1;}
11
template  int Foo (T &) {puts (__PRETTY_FUNCTION__); return 2;}
12
template  int Foo (T const &) {puts (__PRETTY_FUNCTION__); return 3;}
13
 
14
template  int Bar (T const *const &) {puts (__PRETTY_FUNCTION__); return 4;}
15
template  int Bar (T *const &) {puts (__PRETTY_FUNCTION__); return 5;}
16
template  int Bar (T *) {puts (__PRETTY_FUNCTION__); return 6;}
17
 
18
template  int Quux (T *const &) {puts (__PRETTY_FUNCTION__); return 7;}
19
template  int Quux (T const &) {puts (__PRETTY_FUNCTION__); return 8;}
20
 
21
 
22
int Baz (int const *ptr, int *ptr2)
23
{
24
  if (Foo (ptr) != 1)
25
    return 1;
26
  if (Foo (ptr2) != 1)
27
    return 2;
28
  if (Foo (*ptr) != 3)
29
    return 3;
30
  if (Foo (*ptr2) != 2)
31
    return 4;
32
 
33
  if (Bar (ptr) != 4)
34
    return 5;
35
 
36
  if (Quux (ptr) != 7)
37
    return 5;
38
  if (Quux (ptr2) != 7)
39
    return 6;
40
 
41
  return 0;
42
}
43
 
44
int main ()
45
{
46
  return Baz (0, 0);
47
}

powered by: WebSVN 2.1.0

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