diff options
Diffstat (limited to 'gcc/testsuite/gdc.dg/torture')
-rw-r--r-- | gcc/testsuite/gdc.dg/torture/imports/pr109023.d | 3 | ||||
-rw-r--r-- | gcc/testsuite/gdc.dg/torture/pr109023.d | 6 | ||||
-rw-r--r-- | gcc/testsuite/gdc.dg/torture/pr117002.d | 28 |
3 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/gdc.dg/torture/imports/pr109023.d b/gcc/testsuite/gdc.dg/torture/imports/pr109023.d new file mode 100644 index 0000000..e85e0ed --- /dev/null +++ b/gcc/testsuite/gdc.dg/torture/imports/pr109023.d @@ -0,0 +1,3 @@ +module imports.pr109023; + +void f109023() { } diff --git a/gcc/testsuite/gdc.dg/torture/pr109023.d b/gcc/testsuite/gdc.dg/torture/pr109023.d new file mode 100644 index 0000000..3060446 --- /dev/null +++ b/gcc/testsuite/gdc.dg/torture/pr109023.d @@ -0,0 +1,6 @@ +// { dg-do "compile" } +// { dg-additional-options "-I[srcdir] -finclude-imports" } +// { dg-additional-files "imports/pr109023.d" } +// { dg-final { scan-assembler "_D7imports8pr1090237f109023FZv" } } +module pr109023; +import imports.pr109023; diff --git a/gcc/testsuite/gdc.dg/torture/pr117002.d b/gcc/testsuite/gdc.dg/torture/pr117002.d new file mode 100644 index 0000000..5b8c19e --- /dev/null +++ b/gcc/testsuite/gdc.dg/torture/pr117002.d @@ -0,0 +1,28 @@ +// { dg-do compile } +// { dg-additional-options "-Warray-bounds" } +extern(C++) class C117002 +{ + ubyte[4] not_multiple_of_8; +} + +int pr117002a(void *p) +{ + auto init = __traits(initSymbol, C117002); + if (init.ptr + init.length <= p) + return 1; + return 0; +} + +void pr117002b(void *p) +{ + auto init = __traits(initSymbol, C117002); + p[0 .. init.length] = init[]; +} + +void pr117002c() +{ + scope var = new C117002; + void *p = cast(void*)var; + auto init = __traits(initSymbol, C117002); + p[0 .. __traits(classInstanceSize, C117002)] = init[]; +} |