![]() Issue 20339: isPOD returns true if sizeof is accessed inside struct declaration Issue 24292: Struct with destructor wrongly returned in register Function StructDeclaration.isPOD can be called before the semantic run for the struct is finished. It then uses incomplete information about destructors, postblits and copy constructors. The result of isPOD is cached, so later calls will also return the wrong result. This commit changes isPOD, so it uses variables, which are already filled before the semantic run. |
||
---|---|---|
.. | ||
extra-files | ||
abi_tags.d | ||
cabi1.d | ||
cpp11.d | ||
cpp_abi_tests.d | ||
cpp_stdlib.d | ||
cppa.d | ||
externmangle.d | ||
externmangle2.d | ||
README.md | ||
stdint.d | ||
test6716.d | ||
test7925.d | ||
test14203.d | ||
test19179.d | ||
test20652.d | ||
test21515.d | ||
test22287.d | ||
test22351.d | ||
test22898.d | ||
test23135.d | ||
test24292.d |
Tests for C++ interoperability
Each D file will be compiled and linked with other C++ sources defined in a
EXTRA_CPP_SOURCES
parameter.
Any diagnostic emitted must match the predefined diagnostic in the test
file, otherwise the test will fail.
All compiled executables will be run and are expected to finish successfully
with exit code 0. Any output from those binaries must be defined via the
RUN_OUTPUT
parameter.
Purpose
The point of these files is to test that the compiler emits valid code which can interface to binaries generated by a C++ compilers.
Remarks
All test will be run for a variety of C++ compilers and targets, refer to the GitHub CI configuration for more details.
The remarks for runnable tests apply to this category.
Refer to test/README.md for general information and the test guidelines.