libstdc++: Fixing Error: invalid type argument of unary '*' (have 'int')

Message ID CAOfV4GcBnEByQGw8E4GeNpifU+T-bbRGXy09c91HCpOGx_OTeA@mail.gmail.com
State Rejected
Delegated to: Jonathan Wakely
Headers
Series libstdc++: Fixing Error: invalid type argument of unary '*' (have 'int') |

Commit Message

Seija Kijin Aug. 4, 2022, 4:54 p.m. UTC
  Had an error compiling tiny-cuda-nn using gcc 12.1. With this minor
patch, I recompiled and the build succeeded.

No behavioral change.

---
 libstdc++-v3/include/bits/locale_facets_nonio.tcc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Jonathan Wakely Oct. 12, 2022, 11:25 a.m. UTC | #1
On 04/08/22 12:54 -0400, Seija Kijin wrote:
>Had an error compiling tiny-cuda-nn using gcc 12.1. With this minor
>patch, I recompiled and the build succeeded.

This looks like a bug in the cuda compiler then. The libstdc++ code is
correct.

N.B. libstdc++ patches need to be CC'd to the libstdc++ list, or they
won't get reviewed.


>No behavioral change.
>---
> libstdc++-v3/include/bits/locale_facets_nonio.tcc | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
>b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
>index 17a2c8d4486e..fc35a9e693e7 100644
>--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
>+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
>@@ -1474,8 +1474,8 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
>       // calls.  So e.g. if __fmt is "%p %I:%M:%S", we can't handle it
>       // properly, because we first handle the %p am/pm specifier and only
>       // later the 12-hour format specifier.
>-      if ((void*)(this->*(&time_get::do_get)) == (void*)(&time_get::do_get))
>- __use_state = true;
>+      if ((void*)(this->*(&time_get::do_get)) == (&time_get::do_get))
>+        __use_state = true;
> #pragma GCC diagnostic pop
> #endif
>       __time_get_state __state = __time_get_state();
  

Patch

diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
index 17a2c8d4486e..fc35a9e693e7 100644
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -1474,8 +1474,8 @@  _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
       // calls.  So e.g. if __fmt is "%p %I:%M:%S", we can't handle it
       // properly, because we first handle the %p am/pm specifier and only
       // later the 12-hour format specifier.
-      if ((void*)(this->*(&time_get::do_get)) == (void*)(&time_get::do_get))
- __use_state = true;
+      if ((void*)(this->*(&time_get::do_get)) == (&time_get::do_get))
+        __use_state = true;
 #pragma GCC diagnostic pop
 #endif
       __time_get_state __state = __time_get_state();