diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/ada-lang.c | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 18de389..15ed81b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2010-11-22 Joel Brobecker <brobecker@adacore.com> + * ada-lang.c (ada_check_typedef): Call ada_check_typedef only + if type1 is a typedef. + +2010-11-22 Joel Brobecker <brobecker@adacore.com> + * ada-lang.h (ADA_KNOWN_AUXILIARY_FUNCTION_NAME_PATTERNS): Add "_finalizer" to the list. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 76b20e7..15c96b7 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -7756,10 +7756,12 @@ ada_check_typedef (struct type *type) /* TYPE1 might itself be a TYPE_CODE_TYPEDEF (this can happen with stubs pointing to arrays, as we don't create symbols for array - types, only for the typedef-to-array types). This is why - we process TYPE1 with ada_check_typedef before returning - the result. */ - return ada_check_typedef (type1); + types, only for the typedef-to-array types). If that's the case, + strip the typedef layer. */ + if (TYPE_CODE (type1) == TYPE_CODE_TYPEDEF) + type1 = ada_check_typedef (type1); + + return type1; } } |