diff options
Diffstat (limited to 'gcc/testsuite/gdc.test/compilable')
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/cppmangle.d | 1 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/deprecate14283.d | 8 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/emptystatement.d | 19 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/imports/imp24022.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/parens_inc.d | 23 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/test23951.d | 10 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/test23966.d | 19 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/test24022.d | 30 | ||||
-rw-r--r-- | gcc/testsuite/gdc.test/compilable/test7172.d | 6 |
9 files changed, 111 insertions, 10 deletions
diff --git a/gcc/testsuite/gdc.test/compilable/cppmangle.d b/gcc/testsuite/gdc.test/compilable/cppmangle.d index fc74c94..264b374 100644 --- a/gcc/testsuite/gdc.test/compilable/cppmangle.d +++ b/gcc/testsuite/gdc.test/compilable/cppmangle.d @@ -528,7 +528,6 @@ version (CppMangle_Itanium) static assert(basic_ostream!(char, char_traits!char).food.mangleof == "_ZNSo4foodEv"); static assert(basic_iostream!(char, char_traits!char).fooe.mangleof == "_ZNSd4fooeEv"); - static assert(func_18957_2.mangleof == `_Z12func_18957_2PSaIiE`); static assert(func_18957_2!(allocator!int).mangleof == `_Z12func_18957_2ISaIiEET_PS1_`); static assert(func_20413.mangleof == `_Z10func_20413St4pairIifES_IfiE`); diff --git a/gcc/testsuite/gdc.test/compilable/deprecate14283.d b/gcc/testsuite/gdc.test/compilable/deprecate14283.d index e91db64..fc51cf3 100644 --- a/gcc/testsuite/gdc.test/compilable/deprecate14283.d +++ b/gcc/testsuite/gdc.test/compilable/deprecate14283.d @@ -1,12 +1,12 @@ -// REQUIRED_ARGS: -dw +// REQUIRED_ARGS: // PERMUTE_ARGS: class C { void bug() { - autoref(this); // 'auto ref' becomes non-ref parameter - autoref(super); // 'auto ref' becomes non-ref parameter + autoref!(true, C)(this); // 'auto ref' becomes ref parameter + autoref!(false, Object)(super); // 'auto ref' becomes non-ref parameter } } -void autoref(T)(auto ref T t) { static assert(__traits(isRef, t) == false); } +void autoref(bool result, T)(auto ref T t) { static assert(__traits(isRef, t) == result); } diff --git a/gcc/testsuite/gdc.test/compilable/emptystatement.d b/gcc/testsuite/gdc.test/compilable/emptystatement.d new file mode 100644 index 0000000..e6bfc27 --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/emptystatement.d @@ -0,0 +1,19 @@ +/* +REQUIRED_ARGS: +TEST_OUTPUT: +--- +--- +*/ + +void foo() +{ + int x;; + enum A + { + a, + b, + c + }; + + void bar() {}; +} diff --git a/gcc/testsuite/gdc.test/compilable/imports/imp24022.c b/gcc/testsuite/gdc.test/compilable/imports/imp24022.c new file mode 100644 index 0000000..b65e4e1 --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/imports/imp24022.c @@ -0,0 +1,5 @@ +// https://issues.dlang.org/show_bug.cgi?id=24022 +typedef enum { + A = 1, + B, +} E; diff --git a/gcc/testsuite/gdc.test/compilable/parens_inc.d b/gcc/testsuite/gdc.test/compilable/parens_inc.d new file mode 100644 index 0000000..b9d11eb --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/parens_inc.d @@ -0,0 +1,23 @@ +// Test UnaryExp (expr)++ parsing + +void main(){ + int[2] y; + int *x = y.ptr; + *(x)++=0; + (*(x)--)=0; + (*x++)=0; // ok + int*[] z; + *(z[0])++=0; //ok + (y[0])--; + *x++=0; +} + +void f() +{ + int b; + (b)++; + int[] a; + b = (a)[0]++; //ok + (a[0])--; + b = (int).init; //ok +} diff --git a/gcc/testsuite/gdc.test/compilable/test23951.d b/gcc/testsuite/gdc.test/compilable/test23951.d new file mode 100644 index 0000000..e09a3d7 --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/test23951.d @@ -0,0 +1,10 @@ +// https://issues.dlang.org/show_bug.cgi?id=23951 + +struct S { int x; } +struct T { S a; alias a this; } +struct U { T t; } +static assert(__traits(hasMember, T, "x")); +static assert(__traits(hasMember, T.init, "x")); +static assert(__traits(hasMember, U.init.t, "x")); +static assert(__traits(hasMember, U.t, "a")); +static assert(__traits(hasMember, U.t, "x")); diff --git a/gcc/testsuite/gdc.test/compilable/test23966.d b/gcc/testsuite/gdc.test/compilable/test23966.d new file mode 100644 index 0000000..71aa8ca --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/test23966.d @@ -0,0 +1,19 @@ +// https://issues.dlang.org/show_bug.cgi?id=23966 +module test23966; + +@("gigi") +void fun() {} +@("mimi") +void fun(int) {} +@("hihi") +void fun(int, int) {} +@("bibi") +void fun()(int, ulong) {} + +void main() +{ + static foreach (t; __traits(getOverloads, test23966, "fun", true)) + static foreach(attr; __traits(getAttributes, t)) + {} + +} diff --git a/gcc/testsuite/gdc.test/compilable/test24022.d b/gcc/testsuite/gdc.test/compilable/test24022.d new file mode 100644 index 0000000..f499636 --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/test24022.d @@ -0,0 +1,30 @@ +// https://issues.dlang.org/show_bug.cgi?id=24022 +// EXTRA_FILES: imports/imp24022.c +import imports.imp24022; + +auto some_d_func(E v) { + return v; +} + +auto some_d_other_func() { + const struct R { + E r; + this(in E vparam) { r = vparam; } + } + return R(A); +} + +void main(string[] args) { + E expected = E.A; + E res = some_d_func(A); + assert (res == A); + assert (res == expected); + + res = some_d_func(E.B); + assert (res == B); + assert (res == E.B); + + auto res2 = some_d_other_func(); + assert (res2.r == A); + assert (res2.r == expected); +} diff --git a/gcc/testsuite/gdc.test/compilable/test7172.d b/gcc/testsuite/gdc.test/compilable/test7172.d index 013630b..49142d7 100644 --- a/gcc/testsuite/gdc.test/compilable/test7172.d +++ b/gcc/testsuite/gdc.test/compilable/test7172.d @@ -1,8 +1,4 @@ -/* TEST_OUTPUT: ---- -compilable/test7172.d(14): Deprecation: `scope` as a type constraint is deprecated. Use `scope` at the usage site. ---- -*/ + void main() { abstract class AbstractC{} |