X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdbtypes.c;h=827c622dbf4bcbcd8bd7882e90f72bce1bc6dc1f;hb=121b3efd49f98e4049281b3ba7a258e650e40b38;hp=e226cb7f940ec9e86e730a4772d8fa3ad1571dc5;hpb=06acc08f0aa81d0053e9a60bc3bdc1ea3321962e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index e226cb7f94..827c622dbf 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -1,6 +1,6 @@ /* Support routines for manipulating internal types for GDB. - Copyright (C) 1992-2019 Free Software Foundation, Inc. + Copyright (C) 1992-2020 Free Software Foundation, Inc. Contributed by Cygnus Support, using pieces from other GDB modules. @@ -3813,7 +3813,7 @@ check_types_equal (struct type *type1, struct type *type2, static bool check_types_worklist (std::vector *worklist, - struct bcache *cache) + gdb::bcache *cache) { while (!worklist->empty ()) { @@ -3849,7 +3849,7 @@ types_deeply_equal (struct type *type1, struct type *type2) if (type1 == type2) return true; - struct bcache cache (nullptr, nullptr); + gdb::bcache cache (nullptr, nullptr); worklist.emplace_back (type1, type2); return check_types_worklist (&worklist, &cache); } @@ -4303,12 +4303,9 @@ rank_one_type (struct type *parm, struct type *arg, struct value *value) } else { - /* Lvalues should prefer lvalue overloads. */ + /* It's illegal to pass an lvalue as an rvalue. */ if (TYPE_CODE (parm) == TYPE_CODE_RVALUE_REF) - { - rank.subrank = REFERENCE_CONVERSION_RVALUE; - return sum_ranks (rank, REFERENCE_CONVERSION_BADNESS); - } + return INCOMPATIBLE_TYPE_BADNESS; } } @@ -4497,6 +4494,10 @@ dump_fn_fieldlists (struct type *type, int spaces) TYPE_FN_FIELD_PROTECTED (f, overload_idx)); printfi_filtered (spaces + 8, "is_stub %d\n", TYPE_FN_FIELD_STUB (f, overload_idx)); + printfi_filtered (spaces + 8, "defaulted %d\n", + TYPE_FN_FIELD_DEFAULTED (f, overload_idx)); + printfi_filtered (spaces + 8, "is_deleted %d\n", + TYPE_FN_FIELD_DELETED (f, overload_idx)); printfi_filtered (spaces + 8, "voffset %u\n", TYPE_FN_FIELD_VOFFSET (f, overload_idx)); } @@ -4560,6 +4561,9 @@ print_cplus_stuff (struct type *type, int spaces) { dump_fn_fieldlists (type, spaces); } + + printfi_filtered (spaces, "calling_convention %d\n", + TYPE_CPLUS_CALLING_CONVENTION (type)); } /* Print the contents of the TYPE's type_specific union, assuming that