diff options
Diffstat (limited to 'gcc/testsuite/gdc.test/runnable/test17940.d')
-rw-r--r-- | gcc/testsuite/gdc.test/runnable/test17940.d | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gcc/testsuite/gdc.test/runnable/test17940.d b/gcc/testsuite/gdc.test/runnable/test17940.d new file mode 100644 index 00000000000..1ea43dbfacc --- /dev/null +++ b/gcc/testsuite/gdc.test/runnable/test17940.d @@ -0,0 +1,46 @@ +// PERMUTE_ARGS: -O + +// https://issues.dlang.org/show_bug.cgi?id=17940 + +struct Array +{ + long length; + long ptr; +} + +struct Struct +{ + bool b = true; +} + +void fun1(int) +{ +} + +void fun2(Array arr, int, int) +{ + assert(!arr.length); +} + +void fn(Struct* str) +{ + Array arr; + if (!str) + { + return; + } + if (str) + { + fun1(str.b); + } + if (str.b) + { + fun2(arr, str.b, 0); + } +} + +void main() +{ + Struct s; + fn(&s); +} |