analyzer: Change cast from long to intptr_t [PR96608]
authorMarkus Böck <markus.boeck02@gmail.com>
Tue, 27 Oct 2020 13:53:08 +0000 (09:53 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 27 Oct 2020 13:53:08 +0000 (09:53 -0400)
Casting to intptr_t states the intent of an integer to pointer cast
more clearly and ensures that the cast causes no loss of precision on
any platforms. LLP64 platforms eg. have a long value of 4 bytes and
pointer values of 8 bytes which may even cause compiler errors.

gcc/analyzer/ChangeLog:
PR analyzer/96608
* store.h (hash): Cast to intptr_t instead of long

gcc/analyzer/store.h

index 466c1830c0f361a89635801494f031841b3476b6..8054b34d9da75a662f39c8306339e461d2a89904 100644 (file)
@@ -271,7 +271,7 @@ public:
 
   hashval_t hash () const
   {
-    return (binding_key::impl_hash () ^ (long)m_region);
+    return (binding_key::impl_hash () ^ (intptr_t)m_region);
   }
   bool operator== (const symbolic_binding &other) const
   {