diff options
Diffstat (limited to 'clang/docs/ReleaseNotes.rst')
-rw-r--r-- | clang/docs/ReleaseNotes.rst | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 247d784..17e3df4 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -45,6 +45,26 @@ C++ Specific Potentially Breaking Changes regressions if your build system supports two-phase compilation model but haven't support reduced BMI or it is a compiler bug or a bug in users code. +- Clang now correctly diagnoses during constant expression evaluation undefined behavior due to member + pointer access to a member which is not a direct or indirect member of the most-derived object + of the accessed object but is instead located directly in a sibling class to one of the classes + along the inheritance hierarchy of the most-derived object as ill-formed. + Other scenarios in which the member is not member of the most derived object were already + diagnosed previously. (#GH150709) + + .. code-block:: c++ + + struct A {}; + struct B : A {}; + struct C : A { constexpr int foo() const { return 1; } }; + constexpr A a; + constexpr B b; + constexpr C c; + constexpr auto mp = static_cast<int(A::*)() const>(&C::foo); + static_assert((a.*mp)() == 1); // continues to be rejected + static_assert((b.*mp)() == 1); // newly rejected + static_assert((c.*mp)() == 1); // accepted + ABI Changes in This Version --------------------------- @@ -123,6 +143,8 @@ Improvements to Clang's diagnostics Moved the warning for a missing (though implied) attribute on a redeclaration into this group. Added a new warning in this group for the case where the attribute is missing/implicit on an override of a virtual method. +- Fixed fix-it hint for fold expressions. Clang now correctly places the suggested right + parenthesis when diagnosing malformed fold expressions. (#GH151787) Improvements to Clang's time-trace ---------------------------------- @@ -142,6 +164,8 @@ Bug Fixes in This Version Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +- Fix an ambiguous reference to the builtin `type_info` (available when using + `-fms-compatibility`) with modules. (#GH38400) Bug Fixes to Attribute Support ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -196,6 +220,9 @@ LoongArch Support RISC-V Support ^^^^^^^^^^^^^^ +- Add support for `__attribute__((interrupt("rnmi")))` to be used with the `Smrnmi` extension. + With this the `Smrnmi` extension is fully supported. + CUDA/HIP Language Changes ^^^^^^^^^^^^^^^^^^^^^^^^^ |