diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2000-04-04 04:53:50 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@dberlin.org> | 2000-04-04 04:53:50 +0000 |
commit | a86cba99026c21ea4d821d3e16ecfe8dcdf03d5a (patch) | |
tree | 525902af74fd0a85cc4e5eb1ece28dd7076df441 /gdb/gdbtypes.c | |
parent | cc592f40ed56a7b2b0b09f840a38cd0bd2ee262c (diff) | |
download | gdb-a86cba99026c21ea4d821d3e16ecfe8dcdf03d5a.tar.gz |
C++ changes for 5.0, finally committed.
Diffstat (limited to 'gdb/gdbtypes.c')
-rw-r--r-- | gdb/gdbtypes.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 0d5bee84489..9909871633d 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -1484,11 +1484,11 @@ check_stub_method (type, method_id, signature_id) argtypetext = p; while (*p) { - if (*p == '(') + if (*p == '(' || *p == '<') { depth += 1; } - else if (*p == ')') + else if (*p == ')' || *p == '>') { depth -= 1; } @@ -1527,11 +1527,11 @@ check_stub_method (type, method_id, signature_id) argtypetext = p + 1; } - if (*p == '(') + if (*p == '(' || *p == '<') { depth += 1; } - else if (*p == ')') + else if (*p == ')' || *p == '>') { depth -= 1; } @@ -2199,6 +2199,16 @@ rank_one_type (parm, arg) if (TYPE_CODE (arg) == TYPE_CODE_TYPEDEF) arg = check_typedef (arg); + /* + Well, damnit, if the names are exactly the same, + i'll say they are exactly the same. This happens when we generate + method stubs. The types won't point to the same address, but they + really are the same. + */ + + if (TYPE_NAME (parm) == TYPE_NAME (arg)) + return 0; + /* Check if identical after resolving typedefs */ if (parm == arg) return 0; |