aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2021-09-21 00:10:28 +0200
committerPhilip Herron <philip.herron@embecosm.com>2021-09-23 12:55:45 +0100
commit7a92e0ca3c74c44e476157b82b517cac91b5f7a1 (patch)
treefc1dca456bb7493e51a18d683cb07d39d1e101a3 /gcc
parent98359f20cd2d9268df582ea1ee289e0ea69efcb5 (diff)
downloadgcc-7a92e0ca3c74c44e476157b82b517cac91b5f7a1.zip
gcc-7a92e0ca3c74c44e476157b82b517cac91b5f7a1.tar.gz
gcc-7a92e0ca3c74c44e476157b82b517cac91b5f7a1.tar.bz2
Remove warnings from v0_mangle functions in rust-mangle.cc
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/backend/rust-mangle.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/rust/backend/rust-mangle.cc b/gcc/rust/backend/rust-mangle.cc
index 840acb9..0e6643c 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 ();
}