aboutsummaryrefslogtreecommitdiff
path: root/clang/docs/ReleaseNotes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'clang/docs/ReleaseNotes.rst')
-rw-r--r--clang/docs/ReleaseNotes.rst27
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
^^^^^^^^^^^^^^^^^^^^^^^^^