public inbox for gcc-rust@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Remove warnings from v0_mangle functions in rust-mangle.cc
@ 2021-09-20 22:49 Mark Wielaard
  2021-09-21 11:58 ` cohenarthur.dev
  0 siblings, 1 reply; 3+ messages in thread
From: Mark Wielaard @ 2021-09-20 22:49 UTC (permalink / raw)
  To: gcc-rust; +Cc: Mark Wielaard

There were two warnings in rust-mangle.cc

rust-mangle.cc: In function ‘std::string Rust::Compile::v0_mangle_item
(const Rust::TyTy::BaseType*, const Rust::Resolver::CanonicalPath&, const string&)’:
rust-mangle.cc:198:1: warning: no return statement in function returning non-void

rust-mangle.cc: At global scope:
rust-mangle.cc:201:1: warning: ‘std::string Rust::Compile::v0_mangle_impl_item
(const Rust::TyTy::BaseType*, const Rust::TyTy::BaseType*, const string&, const string&)’
 declared ‘static’ but never defined [-Wunused-function]

The first results in undefined behaviour, the second points out that the
function isn't ever called/used.

Fix the first by adding a gcc_unreachable () to turn the calling of the
function into an abort ().  Fix the second by adding the call in
Mangler::mangle_impl_item. And add an implementation simply calling
gcc-unreachable (). This turns the warnings and undefined behaviour into
explicit runtime aborts when these functions are actually called.
---
 gcc/rust/backend/rust-mangle.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

https://code.wildebeest.org/git/user/mjw/gccrs/commit/?h=rust-mangle-unreachable

diff --git a/gcc/rust/backend/rust-mangle.cc b/gcc/rust/backend/rust-mangle.cc
index 840acb992e0..0e6643c64ae 100644
--- a/gcc/rust/backend/rust-mangle.cc
+++ b/gcc/rust/backend/rust-mangle.cc
@@ -195,11 +195,15 @@ v0_mangle_item (const TyTy::BaseType *ty, const Resolver::CanonicalPath &path,
 		const std::string &crate_name)
 {
   auto ty_prefix = v0_type_prefix (ty);
+  gcc_unreachable ();
 }
 
 static std::string
 v0_mangle_impl_item (const TyTy::BaseType *self, const TyTy::BaseType *ty,
-		     const std::string &name, const std::string &crate_name);
+		     const std::string &name, const std::string &crate_name)
+{
+  gcc_unreachable ();
+}
 
 std::string
 Mangler::mangle_item (const TyTy::BaseType *ty,
@@ -227,7 +231,7 @@ Mangler::mangle_impl_item (const TyTy::BaseType *self, const TyTy::BaseType *ty,
     case Mangler::MangleVersion::LEGACY:
       return legacy_mangle_impl_item (self, ty, name, crate_name);
     case Mangler::MangleVersion::V0:
-      gcc_unreachable ();
+      return v0_mangle_impl_item (self, ty, name, crate_name);
     default:
       gcc_unreachable ();
     }
-- 
2.32.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Remove warnings from v0_mangle functions in rust-mangle.cc
  2021-09-20 22:49 [PATCH] Remove warnings from v0_mangle functions in rust-mangle.cc Mark Wielaard
@ 2021-09-21 11:58 ` cohenarthur.dev
  2021-09-21 12:25   ` Mark Wielaard
  0 siblings, 1 reply; 3+ messages in thread
From: cohenarthur.dev @ 2021-09-21 11:58 UTC (permalink / raw)
  To: Mark Wielaard; +Cc: gcc-rust

Thanks Mark!

I forgot to do a clean build before creating the pull request and the
file was already compiled... Sorry about that!

I'll keep on working on v0 mangling in order to get all the parts linked
correctly, but it was in a bit of a dire state :)

Cheers,
Arthur

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Remove warnings from v0_mangle functions in rust-mangle.cc
  2021-09-21 11:58 ` cohenarthur.dev
@ 2021-09-21 12:25   ` Mark Wielaard
  0 siblings, 0 replies; 3+ messages in thread
From: Mark Wielaard @ 2021-09-21 12:25 UTC (permalink / raw)
  To: cohenarthur.dev; +Cc: gcc-rust

Hi Arthur,

On Tue, 2021-09-21 at 13:58 +0200, cohenarthur.dev via Gcc-rust wrote:
> I forgot to do a clean build before creating the pull request and the
> file was already compiled... Sorry about that!
> 
> I'll keep on working on v0 mangling in order to get all the parts
> linked correctly, but it was in a bit of a dire state :)

Thanks for working on this. And no worries, I am just allergic to
warnings (I just must look at them to make sure I understand what is
going on and it wasn't me making a mistake).

Cheers,

Mark

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-21 12:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-20 22:49 [PATCH] Remove warnings from v0_mangle functions in rust-mangle.cc Mark Wielaard
2021-09-21 11:58 ` cohenarthur.dev
2021-09-21 12:25   ` Mark Wielaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).