mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
Move dmd files into compiler/
This commit is contained in:
parent
20bd0cacbd
commit
6374bb87b7
4579 changed files with 4 additions and 4 deletions
156
compiler/test/runnable_cxx/externmangle2.d
Normal file
156
compiler/test/runnable_cxx/externmangle2.d
Normal file
|
@ -0,0 +1,156 @@
|
|||
// EXTRA_CPP_SOURCES: externmangle2.cpp
|
||||
// DISABLED: win
|
||||
|
||||
extern(C++):
|
||||
|
||||
struct Test32NS1
|
||||
{
|
||||
struct Foo(X)
|
||||
{
|
||||
X *v;
|
||||
}
|
||||
|
||||
|
||||
struct Bar(X)
|
||||
{
|
||||
X *v;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
struct Test32NS2
|
||||
{
|
||||
struct Foo(X)
|
||||
{
|
||||
X *v;
|
||||
}
|
||||
};
|
||||
|
||||
struct Test32(alias Y, alias Z)
|
||||
{
|
||||
Y!(int)* field;
|
||||
};
|
||||
|
||||
|
||||
void test32a(Test32!(Test32NS1.Foo, Test32NS1.Foo) arg);
|
||||
void test32b(Test32!(Test32NS1.Foo, Test32NS1.Bar) arg);
|
||||
void test32c(Test32!(Test32NS1.Foo, Test32NS2.Foo) arg);
|
||||
void test32d(Test32!(Test32NS1.Foo, Test32NS2.Foo) arg1, Test32!(Test32NS2.Foo, Test32NS1.Foo) arg2);
|
||||
|
||||
interface XXX
|
||||
{
|
||||
}
|
||||
|
||||
void test33a(XXX, XXX*);
|
||||
|
||||
|
||||
struct Test33(alias A, alias B)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
void test33(XXX, Test33!(test33a, test33a) arg, XXX);
|
||||
|
||||
|
||||
struct Test34(alias A)
|
||||
{
|
||||
};
|
||||
|
||||
struct Test34A
|
||||
{
|
||||
static void foo(int);
|
||||
};
|
||||
|
||||
|
||||
void test34(Test34!(Test34A.foo) arg);
|
||||
*/
|
||||
|
||||
__gshared extern int test36;
|
||||
|
||||
/*
|
||||
struct Test37(alias A)
|
||||
{
|
||||
};
|
||||
|
||||
struct Test37A
|
||||
{
|
||||
__gshared extern int t38;
|
||||
};
|
||||
|
||||
void test37(Test37!(test36) arg);
|
||||
void test38(Test37!(Test37A.t38) arg);
|
||||
*/
|
||||
|
||||
struct Test39
|
||||
{
|
||||
struct T39A(X)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
struct T39A
|
||||
{
|
||||
}
|
||||
|
||||
void test39(Test39.T39A!(.T39A));
|
||||
|
||||
version(none)
|
||||
{
|
||||
version(Posix) //Only for g++ with -std=c++0x and Visual Studio 2013+
|
||||
{
|
||||
|
||||
struct Test40(T, V...)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void test40(Test40!(int, double, void))
|
||||
{
|
||||
}
|
||||
}
|
||||
else version(Win64) //Only for g++ with -std=c++0x and Visual Studio 2013+
|
||||
{
|
||||
|
||||
struct Test40(T, V...)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void test40(Test40!(int, double, void))
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
__gshared extern const XXX test41;
|
||||
struct Test42
|
||||
{
|
||||
__gshared extern const XXX test42;
|
||||
}
|
||||
__gshared extern int[4] test43;
|
||||
const(XXX) test44();
|
||||
|
||||
void main()
|
||||
{
|
||||
test32a(Test32!(Test32NS1.Foo, Test32NS1.Foo)());
|
||||
test32b(Test32!(Test32NS1.Foo, Test32NS1.Bar)());
|
||||
test32c(Test32!(Test32NS1.Foo, Test32NS2.Foo)());
|
||||
test32d(Test32!(Test32NS1.Foo, Test32NS2.Foo)(), Test32!(Test32NS2.Foo, Test32NS1.Foo)());
|
||||
|
||||
//test33a(null, null);
|
||||
//test33(null, Test33!(test33a, test33a)(), null);
|
||||
|
||||
//test34(Test34!(Test34A.foo)());
|
||||
|
||||
assert(test36 == 36);
|
||||
|
||||
//test37(Test37!(test36)());
|
||||
//test38(Test37!(Test37A.t38)());
|
||||
test39(Test39.T39A!(.T39A)());
|
||||
|
||||
assert(test41 is null);
|
||||
assert(Test42.test42 is null);
|
||||
assert(test43 == [1, 2, 3, 4]);
|
||||
auto ptr = &test44;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue