URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
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;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.