aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.dg/pr111650.d
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gdc.dg/pr111650.d')
-rw-r--r--gcc/testsuite/gdc.dg/pr111650.d21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gdc.dg/pr111650.d b/gcc/testsuite/gdc.dg/pr111650.d
new file mode 100644
index 00000000000..4298a76d38f
--- /dev/null
+++ b/gcc/testsuite/gdc.dg/pr111650.d
@@ -0,0 +1,21 @@
+// { dg-do compile }
+ref V require(K, V)(ref V[K] aa, K key, lazy V value);
+
+struct Root
+{
+ ulong[3] f;
+}
+
+Root[ulong] roots;
+
+Root getRoot(int fd, ulong rootID)
+{
+ return roots.require(rootID,
+ {
+ Root result;
+ inoLookup(fd, () => result);
+ return result;
+ }());
+}
+
+void inoLookup(int, scope Root delegate()) { }