public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*).
@ 2020-03-19 11:13 Giuliano Procida
  2020-03-19 12:50 ` Matthias Maennich
  2020-03-20 23:30 ` Dodji Seketeli
  0 siblings, 2 replies; 3+ messages in thread
From: Giuliano Procida @ 2020-03-19 11:13 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

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 <gprocida@google.com>
---
 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();
 }
-- 
2.25.1.481.gfbce0eb801-goog


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

* Re: [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*).
  2020-03-19 11:13 [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*) Giuliano Procida
@ 2020-03-19 12:50 ` Matthias Maennich
  2020-03-20 23:30 ` Dodji Seketeli
  1 sibling, 0 replies; 3+ messages in thread
From: Matthias Maennich @ 2020-03-19 12:50 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, dodji, kernel-team

On Thu, Mar 19, 2020 at 11:13:14AM +0000, Android Kernel Team wrote:
>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 <gprocida@google.com>

Reviewed-by: Matthias Maennich <maennich@google.com>

Cheers,
Matthias
>---
> 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();
> }
>-- 
>2.25.1.481.gfbce0eb801-goog
>
>

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

* Re: [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*).
  2020-03-19 11:13 [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*) Giuliano Procida
  2020-03-19 12:50 ` Matthias Maennich
@ 2020-03-20 23:30 ` Dodji Seketeli
  1 sibling, 0 replies; 3+ messages in thread
From: Dodji Seketeli @ 2020-03-20 23:30 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, kernel-team

Giuliano Procida <gprocida@google.com> a écrit:

> 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.

Applied to master.

Thanks!

-- 
		Dodji

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

end of thread, other threads:[~2020-03-20 23:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-19 11:13 [PATCH] abg-ir.cc: Fix peel_typedef_type(const type_base*) Giuliano Procida
2020-03-19 12:50 ` Matthias Maennich
2020-03-20 23:30 ` Dodji Seketeli

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).