* valops.c (call_function_by_hand): If the function has a
prototype, convert its arguments as if by assignment. Otherwise, do the usual promotions. * stabsread.c (define_symbol): Set the TYPE_FLAG_PROTOTYPED flag on functions' types when we can; all C++ functions should get it, and if the Sun-style prototype notation is in the stabs, we can notice that.
This commit is contained in:
parent
d627a67430
commit
345bcdcc4d
1 changed files with 14 additions and 4 deletions
|
@ -1607,6 +1607,11 @@ define_symbol (valu, string, desc, type, objfile)
|
|||
in GDB. E.g. "int" is converted to "function returning int". */
|
||||
if (TYPE_CODE (SYMBOL_TYPE (sym)) != TYPE_CODE_FUNC)
|
||||
SYMBOL_TYPE (sym) = lookup_function_type (SYMBOL_TYPE (sym));
|
||||
|
||||
/* All functions in C++ have prototypes. */
|
||||
if (SYMBOL_LANGUAGE (sym) == language_cplus)
|
||||
TYPE_FLAGS (SYMBOL_TYPE (sym)) |= TYPE_FLAG_PROTOTYPED;
|
||||
|
||||
/* fall into process_prototype_types */
|
||||
|
||||
process_prototype_types:
|
||||
|
@ -1614,10 +1619,15 @@ define_symbol (valu, string, desc, type, objfile)
|
|||
about their actual types (FIXME -- we should remember the whole
|
||||
function prototype), but the list may define some new types
|
||||
that we have to remember, so we must scan it now. */
|
||||
while (*p == ';') {
|
||||
p++;
|
||||
read_type (&p, objfile);
|
||||
}
|
||||
if (*p == ';')
|
||||
{
|
||||
TYPE_FLAGS (SYMBOL_TYPE (sym)) |= TYPE_FLAG_PROTOTYPED;
|
||||
|
||||
while (*p == ';') {
|
||||
p++;
|
||||
read_type (&p, objfile);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'F':
|
||||
|
|
Loading…
Add table
Reference in a new issue