URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 338 |
// Testcase for mangling of expressions involving operator names.
|
// Testcase for mangling of expressions involving operator names.
|
// { dg-options -std=c++0x }
|
// { dg-options -std=c++0x }
|
// { dg-final { scan-assembler "_Z1fI1AEDTclonplfp_fp_EET_" } }
|
// { dg-final { scan-assembler "_Z1fI1AEDTclonplfp_fp_EET_" } }
|
// { dg-final { scan-assembler "_Z1gI1AEDTclonplIT_Efp_fp_EES1_" } }
|
// { dg-final { scan-assembler "_Z1gI1AEDTclonplIT_Efp_fp_EES1_" } }
|
// { dg-final { scan-assembler "_Z1hI1AEDTcldtfp_miEET_" } }
|
// { dg-final { scan-assembler "_Z1hI1AEDTcldtfp_miEET_" } }
|
// { dg-final { scan-assembler "_Z1iI1AEDTcldtfp_srT_miEES1_" } }
|
// { dg-final { scan-assembler "_Z1iI1AEDTcldtfp_srT_miEES1_" } }
|
// { dg-final { scan-assembler "_Z1jI1AEDTcldtfp_cvPT_EES1_" } }
|
// { dg-final { scan-assembler "_Z1jI1AEDTcldtfp_cvPT_EES1_" } }
|
|
|
struct A {
|
struct A {
|
void operator-();
|
void operator-();
|
template
|
template
|
operator T();
|
operator T();
|
};
|
};
|
template
|
template
|
T operator+(T,T);
|
T operator+(T,T);
|
|
|
template
|
template
|
auto f (T t) -> decltype(operator+(t,t));
|
auto f (T t) -> decltype(operator+(t,t));
|
template
|
template
|
auto g (T t) -> decltype(operator+(t,t));
|
auto g (T t) -> decltype(operator+(t,t));
|
template
|
template
|
auto h (T t) -> decltype(t.operator-());
|
auto h (T t) -> decltype(t.operator-());
|
template
|
template
|
auto i (T t) -> decltype(t.T::operator-());
|
auto i (T t) -> decltype(t.T::operator-());
|
template
|
template
|
auto j (T t) -> decltype(t.operator T*());
|
auto j (T t) -> decltype(t.operator T*());
|
|
|
int main()
|
int main()
|
{
|
{
|
f(A());
|
f(A());
|
g(A());
|
g(A());
|
h(A());
|
h(A());
|
i(A());
|
i(A());
|
j(A());
|
j(A());
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.