From patchwork Thu Mar 19 11:13:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 39049 From: gprocida@google.com (Giuliano Procida) Date: Thu, 19 Mar 2020 11:13:14 +0000 Subject: [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*). Message-ID: <20200319111315.162790-1-gprocida@google.com> The various peel_*_type functions are supposed to return either an underlying type (when something can be "peeled") or the original type (when not). This overload of peel_typedef_type currently returns null if the type isn't a typedef. This patch corrects this. The bug hasn't bitten as all existing calls are protected by an is_typedef check. Note that the recursive calls within the function are to the other (const type_base_sptr&) overload. * src/abg-ir.cc (peel_typedef_type): In the const type_base* overload, return the original argument rather than null if the type isn't actually a typedef. Signed-off-by: Giuliano Procida Reviewed-by: Matthias Maennich --- src/abg-ir.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abg-ir.cc b/src/abg-ir.cc index 83602b8a..27d493cc 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -5249,7 +5249,7 @@ peel_typedef_type(const type_base* type) { const typedef_decl* t = is_typedef(type); if (!t) - return t; + return type; return peel_typedef_type(t->get_underlying_type()).get(); }