aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/compilable
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gdc.test/compilable')
-rw-r--r--gcc/testsuite/gdc.test/compilable/cppmangle.d1
-rw-r--r--gcc/testsuite/gdc.test/compilable/deprecate14283.d8
-rw-r--r--gcc/testsuite/gdc.test/compilable/emptystatement.d19
-rw-r--r--gcc/testsuite/gdc.test/compilable/imports/imp24022.c5
-rw-r--r--gcc/testsuite/gdc.test/compilable/parens_inc.d23
-rw-r--r--gcc/testsuite/gdc.test/compilable/test23951.d10
-rw-r--r--gcc/testsuite/gdc.test/compilable/test23966.d19
-rw-r--r--gcc/testsuite/gdc.test/compilable/test24022.d30
-rw-r--r--gcc/testsuite/gdc.test/compilable/test7172.d6
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{}