dmd/compiler/test/runnable_cxx
Tim Schendekehl a4d6972c08 Fixes issues 20339, 24292: Calculate isPOD without information from semantic run
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.
2023-12-21 23:20:11 +01:00
..
extra-files Fixes issues 20339, 24292: Calculate isPOD without information from semantic run 2023-12-21 23:20:11 +01:00
abi_tags.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
cabi1.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
cpp11.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
cpp_abi_tests.d fix Issue 23195 - Win64 function ABI bug for small non-POD arguments (#14651) 2023-02-09 09:39:00 +02:00
cpp_stdlib.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
cppa.d fix Issue 23145 - Stack allocation of scope new variables defeats @safe (#14175) 2023-02-08 23:29:07 -08:00
externmangle.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
externmangle2.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
README.md Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
stdint.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test6716.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test7925.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test14203.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test19179.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test20652.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test21515.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test22287.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test22351.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test22898.d Fix runnable_cxx/test22898.d on macOS-arm64 (#14918) 2023-02-27 11:07:59 +02:00
test23135.d Move dmd files into compiler/ 2022-07-09 18:53:07 +02:00
test24292.d Fixes issues 20339, 24292: Calculate isPOD without information from semantic run 2023-12-21 23:20:11 +01:00

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.