[Bug analyzer/93543] [10 regression] bootstrap with clang 9.0.1 fails in analyzer: reinterpret_cast from 'nullptr_t' to 'function *' is not allowed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93543 Sebastian Huber changed: What|Removed |Added CC||sebastian.huber@embedded-br ||ains.de --- Comment #2 from Sebastian Huber --- LLVM 8.0.1 is also affected by this. In https://en.cppreference.com/w/cpp/language/reinterpret_cast I found this note: "9) The null pointer value of any pointer type can be converted to any other pointer type, resulting in the null pointer value of that type. Note that the null pointer constant nullptr or any other value of type std::nullptr_t cannot be converted to a pointer with reinterpret_cast: implicit conversion or static_cast should be used for this purpose." Consider the following test program: struct function; function *g(void) { return static_cast(nullptr); } function *f(void) { return reinterpret_cast(nullptr); } $ clang -c test.cc test.cc:10:10: error: reinterpret_cast from 'nullptr_t' to 'function *' is not allowed return reinterpret_cast(nullptr); ^ 1 error generated.
[Bug analyzer/93543] [10 regression] bootstrap with clang 9.0.1 fails in analyzer: reinterpret_cast from 'nullptr_t' to 'function *' is not allowed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93543 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug analyzer/93543] [10 regression] bootstrap with clang 9.0.1 fails in analyzer: reinterpret_cast from 'nullptr_t' to 'function *' is not allowed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93543 --- Comment #1 from David Malcolm --- Here's a simpler patch; does it fix the build with clang? gcc/analyzer/ChangeLog: PR analyzer/93543 * engine.cc (pod_hash_traits::mark_empty): Eliminate reinterpret_cast. (pod_hash_traits::is_empty): Likewise. --- gcc/analyzer/engine.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc index 90f7067dec1..81b8a76c5eb 100644 --- a/gcc/analyzer/engine.cc +++ b/gcc/analyzer/engine.cc @@ -2962,7 +2962,7 @@ template <> inline void pod_hash_traits::mark_empty (value_type ) { - v.m_fun = reinterpret_cast (NULL); + v.m_fun = NULL; } template <> inline bool @@ -2974,7 +2974,7 @@ template <> inline bool pod_hash_traits::is_empty (value_type v) { - return v.m_fun == reinterpret_cast (NULL); + return v.m_fun == NULL; } namespace ana { -- 2.21.0
[Bug analyzer/93543] [10 regression] bootstrap with clang 9.0.1 fails in analyzer: reinterpret_cast from 'nullptr_t' to 'function *' is not allowed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93543 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2020-02-03 CC||marxin at gcc dot gnu.org Ever confirmed|0 |1