summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/runnable/test23234.d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2022-07-26 18:13:54 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2022-07-26 23:43:13 +0200
commit81a0fa31ce96327618023b476ea121dbe2494b04 (patch)
tree7a92b40bb7124e7e2449fef9983e22db836a0f65 /gcc/testsuite/gdc.test/runnable/test23234.d
parent2009850b2b7042a678c385cd72e6ceb40caac8cd (diff)
d: Merge upstream dmd 76e3b41375, druntime 1462ebd1, phobos 5fef0d28f.
Updates D language version to v2.100.1. D front-end changes: - Fix delegate literal with inferred return value that requires following alias-this to not use class cast. - Fix internal error on variadic template type instantiated with two arrays of classes. - `scope(failure)' blocks that contain `return' statements are now deprecated. - Fix regression where wrong cast was inserted for ternary operator and non-int enums. - Fix internal error in code generation trying to reference _d_arraysetctor. - Fix memory corruption when array literal is passed to map in lambda, then returned from nested function. - Generate invariant id on the basis of location rather than a global counter. - Make `noreturn' conversions work. - Fix segfault when `.stringof' of template alias overloaded with function accessed by trait. - Empty array literal passed to scope param not 'falsey' anymore. Phobos changes: - Avoid copying ranges in std.algorithm.comparison.equal. gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd 76e3b41375. * dmd/VERSION: Bump version to v2.100.1. * decl.cc (DeclVisitor::visit (VarDeclaration *)): Evaluate RHS of noreturn declaration expressions first. * expr.cc (ExprVisitor::visit (AssignExp *)): Don't generate assignment for noreturn types. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime 1462ebd1. * src/MERGE: Merge upstream phobos 5fef0d28f.
Diffstat (limited to 'gcc/testsuite/gdc.test/runnable/test23234.d')
-rw-r--r--gcc/testsuite/gdc.test/runnable/test23234.d22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gdc.test/runnable/test23234.d b/gcc/testsuite/gdc.test/runnable/test23234.d
new file mode 100644
index 00000000000..7872aa76dfe
--- /dev/null
+++ b/gcc/testsuite/gdc.test/runnable/test23234.d
@@ -0,0 +1,22 @@
+// https://issues.dlang.org/show_bug.cgi?id=23234
+
+class Bar
+{
+}
+
+class Foo
+{
+ Bar get() { return new Bar; }
+ alias get this;
+}
+
+void main()
+{
+ auto foo = new Foo;
+ void test(Bar delegate() dg)
+ {
+ assert(dg() !is null);
+ }
+
+ test(() => foo);
+}