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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.benjamin/] [14687.C] - Diff between revs 305 and 338

Only display areas with differences | Details | Blame | View Log

Rev 305 Rev 338
// { dg-do run  }
// { dg-do run  }
// 981203 bkoz
// 981203 bkoz
// g++/14687
// g++/14687
#include 
#include 
unsigned int gtest;
unsigned int gtest;
// 7.3.3 the using declaration
// 7.3.3 the using declaration
// p 3
// p 3
struct belieze {
struct belieze {
  void f(char);
  void f(char);
  void g(char);
  void g(char);
  enum E { e };
  enum E { e };
  union { int x; };
  union { int x; };
};
};
struct dominica: belieze {
struct dominica: belieze {
  using belieze::f;
  using belieze::f;
  void f(int i) { f('c'); } // calls belieze::f(char)
  void f(int i) { f('c'); } // calls belieze::f(char)
  void g(int i) { g('c'); } // recursively calls dominca::g(int)
  void g(int i) { g('c'); } // recursively calls dominca::g(int)
};
};
// p 6
// p 6
namespace A {
namespace A {
  void f(int i) { gtest = 1; }
  void f(int i) { gtest = 1; }
}
}
using A::f;      //f is a synonym for A::f, that is for A::f(int)
using A::f;      //f is a synonym for A::f, that is for A::f(int)
namespace A {
namespace A {
  void f(char c) { gtest = 3; }
  void f(char c) { gtest = 3; }
}
}
void foo(void) {
void foo(void) {
  f('a');        //calls f(int), even though A::f(char) exits
  f('a');        //calls f(int), even though A::f(char) exits
  assert (gtest = 1);
  assert (gtest = 1);
}
}
void bar(void) {
void bar(void) {
  using A::f;    //f is a synonm for A::f, that is for A::f(int) and A::f(char)
  using A::f;    //f is a synonm for A::f, that is for A::f(int) and A::f(char)
  f('a');        //calls f(char)
  f('a');        //calls f(char)
  assert (gtest = 3);
  assert (gtest = 3);
}
}
int main(void)
int main(void)
{
{
  foo();
  foo();
  bar();
  bar();
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

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