Commit Graph

69 Commits

Author SHA1 Message Date
Jim Kingdon
4bfe9e81cd * stabsread.c (define_symbol): If we choose not to combine
two symbols, don't just ignore the second (LOC_REGISTER) one.
	* printcmd.c (print_frame_args): If we have a LOC_ARG and a
	LOC_REGISTER, use the LOC_ARG not the LOC_REGISTER.
1993-12-29 18:42:52 +00:00
Kung Hsu
279a3cfdfb Modified Files:
ChangeLog stabsread.c

        * stabsread.c (read_type): fix problem when reading static member
        of a class. caused by change to allow :: inside template
        instantiated name.
1993-12-28 02:46:34 +00:00
Jim Kingdon
28f851f93a * stabsread.c (define_symbol): Only combine a p/r pair into a
LOC_REGPARM if REG_STRUCT_HAS_ADDR.
1993-12-25 19:50:45 +00:00
Jim Kingdon
7677d4fda4 * stabsread.c (read_type): Don't fall through 'S' case (the case it
was falling though happened to do the thing thing ("break;") but that
	is hardly a good thing to assume).
1993-12-24 20:43:29 +00:00
Per Bothner
cba009211a * ch-exp.y (match_dollar_tokens): Fix off-by-one bug.
* ch-lang.c (chill_is_varying_struct), ch-lang.h:  New function.
	* ch-lang.c (chill_printstr):  Use double quotes, not single quotes.
	* ch-typeprint.c (chill_type_print_base):  Handle TYPE_CODE_BITSTRING.
	Improve printing of TYPE_CODE_STRING, TYPE_CODE_SET, and
	TYPE_CODE_STRUCT (including checking chill_is_varying_struct).
	Print TYPE_DUMMY_RANGE by printing its TYPE_TARGET_TYPE.
	Handle TYPE_CODE_ENUM.
	* ch-valprint.c (chill_val_print):  Handle TYPE_CODE_BITSTRING.
	For TYPE_CODE_STRING, never print address.  Handle VARYING strings.
	* gdbtypes.c (force_to_range_type):  New.
	* gdbtypes.c (create_set_type):  Make work, following Chill layout.
	* gdbtypes.h (TYPE_LOW_BOUND, TYPE_HIGH_BOUND, TYPE_DUMMY_RANGE): New.
	* stabsread.c (read_type):  Distinguish string and bitstring from
	char-array and set.
	* valarith.c (value_subscript), valops.c (value_coerce_array):
	Handle STRINGs as well as ARRAYs.
	* valarith.c (value_bit_index):  Fix think.  Use new macros.
1993-12-21 22:18:51 +00:00
Per Bothner
e909f287a8 Implement support for Chill POWERSETs.
* ch-exp.y (operand_2):  Implement 'Element IN PowerSet'.
	* ch-typeprint.c (chill_type_print_base):  Handle POWERSETs.
	* ch-valprint.c (chill_val_print):  Handle TYPE_CODE_SET.
	* eval.c (evaluate_subexp):  Implement BINOP_IN.
	* expression.h (enum exp_opcode):  Added BINOP_IN.
	* gdbtypes.c (create_set_type), gdbtypes.h:  New function.
	* stabsread.c (read_type):  If 'S', create a set type.
	* valarith.c (value_bit_index, value_in), value.h:  New functions,
	for indexing in SETs.
1993-12-14 04:32:51 +00:00
Fred Fish
11b959da9c * stabsread.c (read_array_type): Allow negative array bounds,
without interpreting that to mean "adjustable."
	* ch-valprint.c (chill_val_print):  Handle RANGE types.
	* ch-typeprint.c (chill_type_print_base):  Handle BOOL.
	Handle variant records.  Handle RANGE types.
1993-12-11 01:27:23 +00:00
Kung Hsu
e9935d43b7 Modified Files:
ChangeLog stabsread.c

        * stabsread.c(read_struct_field): Fix the check when getting to
        member functions. (fix pr4000).
1993-11-29 23:40:31 +00:00
Jim Kingdon
dda398c369 * gdbtypes.h: Add TYPE_FLAG_TARGET_STUB.
* gdbtypes.c (check_stub_type): On TYPE_FLAG_TARGET_STUB, do
	what cleanup_undefined_types does for arrays, except we clear
	TYPE_FLAG_TARGET_STUB if we fix up the type.
	* stabsread.c (cleanup_undefined_types): Add comments about how
	doing arrays here is no longer the clean way to do it.
	(read_array_type): Set TYPE_FLAG_TARGET_STUB as well as calling
	add_undefined_type.
	* c-typeprint.c, ch-typeprint.c: Move call to check_stub_type
	outside switch so it happens for all type codes.
	* cp-valprint.c (cp_print_value_fields): Recurse to val_print,
	instead of c_val_print, so that check_stub_type gets called.

	* gdbtypes.h, gdbtypes.c, m2-lang.c, ch-lang.c, c-lang.c: Remove
	TYPE_FLAG_SIGNED.  It was inconsistently set, never checked
	(except in recursive_dump_type), and is pointless.
1993-11-15 20:13:30 +00:00
Jim Kingdon
f6d7df5638 * stabsread.c: Remove #if 0'd dbx_class_complaint. We now handle
this (more or less) gracefully, and complain() was never a good
	way of dealing with this.
1993-11-15 05:36:36 +00:00
Jim Kingdon
79cf7e1f33 * stabsread.c (read_type): Skip the colon when reading a
cross-reference.  Only complain, not error_type, on unrecognized
	cross-reference types.  error_type, not dump core, if the colon is
	missing.
1993-11-14 06:40:47 +00:00
Kung Hsu
2fb58b984c Modified Files:
ChangeLog stabsread.c

        * stabsread.c (patch_block_stabs, define_symbol, read_type): in
        g++ template instantiation, nested class can be part of the
        params, and '::' can gets into symbol or type names. This is
        to fix the problem. (fix pr3837)
1993-11-12 19:34:24 +00:00
Jeff Law
91f8701603 * printcmd.c (address_info): Use fprintf_symbol_filtered
to print the symbol name.

	* stabsread.c (define_symbol): Handle cfront lossage for
	struct/union/enums and typedefs.

	* partial-stab.h (case N_BINCL): Update psymtab_language
	as appropriate when changing subfiles.
	(case N_SOL): Update psymtab_language as appropriate when
	changing subfiles.  Add typedef for structs, unions, and enums
	when processing C++ files.
1993-11-11 23:27:21 +00:00
Jim Kingdon
1dfaef6225 * stabsread.c (read_one_struct_field): Don't give up on unknown
visibility character, just shove it in fip->list->visibility.
	(read_baseclasses): Don't give up on unknown virtual or visibility
	characters, just assume a reasonable default, complain, and keep
	going.
	(attach_fields_to_type): Complain on unrecognized visibility.
	One result of all this is that '9' (VISIBILITY_IGNORE) can be used
	in a stab as well as being something which GDB uses internally.
1993-11-08 17:27:48 +00:00
Jim Kingdon
d4e68deccb * stabsread.c: Remove long_kludge_name code (it was already #if 0).
* stabsread.c (read_one_struct_field): Clean up comments to reflect
	Kung's change of 5 Nov 93.
1993-11-08 17:02:08 +00:00
Kung Hsu
024f65b180 Modified Files:
gdbtypes.h stabsread.c cp-valprint.c ChangeLog

        * gdbtypes.h : add a field 'ignore_field_bits in cplus_specific,
        and macros to handle the bits.
        * stabsread.c (read_one_struct_field): add VISIBILITY_IGNORE, and
        for field of length 0, set this bit on.
        * cp-valprint.c (cp_print_value_fields): for VISIBILITY_IGNORE
        field, print <no value>.
1993-11-06 01:32:11 +00:00
Jim Kingdon
f73fb0ce03 * stabsread.c (read_struct_fields): Accept either '$' or '.' as
the character which introduces a cpp_abbrev or anonymous type.
1993-11-05 04:49:06 +00:00
Jim Kingdon
73edb321e3 * values.c (unpack_long, unpack_double, value_from_double),
valarith.c (value_binop), stabsread.c (define_symbol):
	Use extract_floating and store_floating instead of
	SWAP_TARGET_AND_HOST.
1993-10-31 20:45:41 +00:00
Jim Kingdon
bf5c0d6448 * defs.h, findvar.c (extract_floating, store_floating): New functions.
* Move SWAP_TARGET_AND_HOST from defs.h to findvar.c because it is
	now used only by extract_floating and store_floating.
	* valprint.c (print_floating): Use unsigned arithmetic.  Use
	extract_unsigned_integer instead of SWAP_TARGET_AND_HOST.
	Change sizeof (float) to 4 and sizeof (double) to 8 (those are always
	the relevant sizes for this code, which is in #ifdef IEEE_FLOAT).
	* values.c (unpack_long, unpack_double, value_from_double),
	valarith.c (value_binop), stabsread.c (define_symbol):
	Use extract_floating and store_floating instead of
	SWAP_TARGET_AND_HOST.
	* config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*):
	Use extract_floating and store_floating.
	* config/m88k/tm-m88k.h: Add comments (it should be doing the same).
	* i386-tdep.c (i386_extract_return_value),
	* remote-nindy.c (nindy_store_registers): Use store_floating.
1993-10-29 18:16:33 +00:00
Jim Kingdon
dcb389736b * stabsread.c (define_symbol): Skip the whole thing about "pcc
promotion" on little-endian machines.
1993-10-23 01:56:18 +00:00
Jim Kingdon
fc81adb803 * stabsread.c (define_symbol): When combining a LOC_ARG and a
LOC_REGISTER, use the type from the LOC_REGISTER, not from the
	LOC_ARG.
1993-10-20 23:45:13 +00:00
Jim Kingdon
4fc9d7c70e * stabsread.c (read_type): Treat a negative type number at the start
of a type as a type reference, not as a definition of a type with
	"50=" omitted.  This makes things work on the RS/6000 again (the
	14 Sep 1993 change broke it).
1993-10-12 23:55:13 +00:00
Jim Kingdon
9438d64262 * stabsread.h, stabsread.c, dbxread.c (common_block*, copy_pending):
Move common block handling from dbxread.c to stabsread.c.
	Use the name from the BCOMM instead of the ECOMM.
	Allocate things on the symbol_obstack.
	* xcoffread.c (process_xcoff_symbol): Process C_BCOMM, C_ECOMM,
	and C_ECOML.  On unrecognized storage classes, go ahead and call
	define_symbol (after the complaint).

	* dbxread.c (process_one_symbol): Don't relocate 'S' symbols by
	the text offset.
1993-10-12 20:02:11 +00:00
Jim Kingdon
78934ba843 * stabsread.c: Fix comment about gcc 2.3.3 stab for long long int. 1993-10-12 14:05:22 +00:00
Jim Kingdon
ebccb10ba5 * stabsread.c (read_range_type): Remove comment which recommends
distinguishing float from complex by the name.
1993-10-05 20:39:49 +00:00
Peter Schauer
cef4c2e7a5 Changes to support alpha OSF/1 in native mode.
* alpha-nat.c, alpha-tdep.c, config/alpha/alpha-osf1.mt,
	  config/alpha/nm-alpha.h, config/alpha/tm-alpha.h, osfsolib.c:
	New files.
	* Makefile.in:  Add new files and dependencies.
	* configure.in:  Add alpha target.
	* config/alpha/alpha-osf1.mh (NATDEPFILES):  Add osfsolib.o
	* config/alpha/alpha-osf1.mh (MH_CFLAGS):  Remove, we can handle
	shared libraries now.
	* config/alpha/xm-alpha.h:  Cleanup, get MAKEVA_* defines right.

	* defs.h (CORE_ADDR):  Make its type overridable via CORE_ADDR_TYPE,
	provide `unsigned int' default.
	* breakpoint.c (breakpoint_auto_delete):  Delete only if we really
	stopped for the breakpoint.
	* stabsread.c, stabsread.h (define_symbol):  Change valu parameter
	to a CORE_ADDR.
	* stabsread.c (read_range_type):  Handle the case where the lower
	bound overflows and the upper doesn't and the range is legal.
	* infrun.c (resume):  Do not step a breakpoint instruction if
	CANNOT_STEP_BREAKPOINT is defined.

	* inferior.h (CALL_DUMMY_LOCATION):  New variant AT_ENTRY_POINT.
	Now that we have the bp_call_dummy breakpoint the call dummy code
	is no longer needed. PUSH_DUMMY_FRAME, PUSH_ARGUMENTS and
	FIX_CALL_DUMMY can be used to set up everything for the dummy.
	The breakpoint for the dummy is set at the entry point and thats it.
	* blockframe.c (inside_entry_file, inside_entry_func):  Do not stop
	backtraces if pc is in the call dummy at the entry point.
	* infcmd.c (run_stack_dummy):  Handle AT_ENTRY_POINT case. Use
	the expected breakpoint pc when setting up the frame for
	set_momentary_breakpoint.
	* symfile.c (entry_point_address):  New function for AT_ENTRY_POINT
	support.
	* valops.c (call_function_by_hand):  Handle AT_ENTRY_POINT case.
1993-10-05 19:44:57 +00:00
Jim Kingdon
5ed0ccafca * stabsread.c (read_type): Process "s" (size) type attribute.
If type is defined to another type, copy the type.
1993-09-15 00:46:55 +00:00
K. Richard Pixley
46c28185ab some gcc lint 1993-09-08 20:15:34 +00:00
Jim Kingdon
996ccb3043 * symtab.c, symfile.c, c-exp.y, ch-exp.y, m2-exp.y, buildsym.c,
symfile.h, stabsread.c, minsyms.c, solib.c, nlmread.c, dwarfread.c
	partial-stab.h, symmisc.c, gdbtypes.c: Lint.  Remove (or put
	inside #if) unused variables and labels.  Fix unclosed comment.
	Deal with enumeration values unhandled in switch statements.  Make
	sure non-void functions return values.  Include appropriate
	headers.
	* dbxread.c (elfstab_build_psymtabs): Don't check for unsigned
	value < 0.
1993-09-02 01:41:40 +00:00
K. Richard Pixley
ade40d3153 bcopy -> memcpy 1993-09-01 20:37:15 +00:00
Stan Shebs
48f075eb2a Moved the function hashname from stabsread.c to buildsym.c, since
it's a general-purpose function.
1993-08-09 23:49:18 +00:00
Jim Kingdon
230a3ab0d4 * stabsread.c (rs6000_builtin_type): Make logical types be
TYPE_CODE_BOOL.
1993-07-26 20:04:02 +00:00
Jim Kingdon
91ab5674f8 * stabsread.c (rs6000_builtin_type): Make `logical' be TYPE_CODE_BOOL. 1993-07-26 18:23:59 +00:00
Jim Kingdon
5af4f5f6f1 Tue Jul 13 14:03:48 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* stabsread.c (define_symbol): Make the caddr_t hack apply to `function
	returning foo' as well as `pointer to foo'.

	* remote.c [REMOTE_BREAKPOINT]: Use for breakpoint insn if defined.
	* config/m68k/tm-m68k.h: Define it.
	* mem-break.c, breakpoint.c: Improve comments.

Tue Jul 13 13:35:31 1993  Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr)

	* config/m68k/tm-dpx2.h: Replace "tm-68k.h" with "m68k/tm-m68k.h".
	* config/m68k/xm-dpx2.h: Define HAVE_TERMIOS not HAVE_TERMIO.
1993-07-14 15:12:05 +00:00
Jim Kingdon
b2bebdb0f1 * gdbtypes.h (struct type): Add field tag_name.
* gdbtypes.c (type_name_no_tag), c-typeprint.c (c_type_print_base):
	Use it.
	* {coff,dwarf,mips,stabs}read.c: Set it.
1993-07-02 02:57:06 +00:00
Jim Kingdon
7e71985c9e * c-valprint.c (c_val_print): Handle TYPE_CODE_BOOLEAN.
* stabsread.c: Type -16 is 4 bytes.
1993-06-25 19:29:45 +00:00
Jim Kingdon
9ddfb9eb20 * stabsread.c: Include <ctype.h>. 1993-06-22 08:20:18 +00:00
Jim Kingdon
089dc22027 * stabsread.c (read_struct_fields): Don't call read_cpp_abbrev on $_.
(read_cpp_abbrev): Don't complain specially for $_.  Also return 0 if
	we don't recognize the abbrev.
1993-06-20 20:30:31 +00:00
Jim Kingdon
36bcda7958 * stabsread.c (read_type): Skip type attributes if present. 1993-05-31 20:14:59 +00:00
Jim Kingdon
574a2a49b7 * stabsread.c (read_huge_number): Don't accept '0' + radix as part
of number, just through '0' + radix - 1.
1993-05-31 18:08:56 +00:00
Jim Kingdon
59d69506fb * stabsread.c (define_symbol, case 't'): Only set the name if it
is not a pointer type.

	* stabsread.c (define_symbol): Clean up logic; move the read_type
	calls to inside the switch statement (this improves the error
	handling).
1993-05-26 17:17:02 +00:00
Jim Kingdon
ea753d03d6 * stabsread.c: Remove all uses of error(). Make error_type and
read_type_number static.
	(define_symbol): Don't try to deal with a missing symbol
	descriptor which isn't followed by digit, '(', or '-'.
	* stabsread.h: Don't declare read_type_number here.
	* gdbtypes.h: Don't declare error_type here.
	* xcoffread.c: Remove NO_TYPEDEFS code.
1993-05-25 19:39:41 +00:00
Jim Kingdon
f52bde21f9 * stabsread.c: Remove most uses of lookup_fundamental_type.
(define_symbol): Use read_type for type of enum constant,
	not just read_type_number.  Also don't call error().
	(define_symbol): For unrecognized constant type, one complaint (the
	one from error_type) is	enough.  Don't make our own in addition.
	(define_symbol): Don't treat an N_FUN 'R' as a prototype.
	* gdbtypes.h: Doc fixes.
1993-05-22 19:20:37 +00:00
Jim Kingdon
b646b43826 * complaint.c: Make sure all complain() pass the address of the struct.
* xcoffread.c: Make sure all struct complaints are static not auto.
1993-05-21 20:43:16 +00:00
Jim Kingdon
ff580c7b96 * stabsread.c (define_symbol): If unrecognized constant type,
complain() not error().
1993-04-29 17:19:11 +00:00
Fred Fish
7efb57c33d * defs.h (CC_HAS_LONG_LONG): Set up to define CC_HAS_LONG_LONG
when compiling with gcc, but disable it for now.  See comment.
	* defs.h (LONGEST):  Define as either "long" or "long long"
	based on CC_HAS_LONG_LONG.
	* defs.h (longest_to_int):  Use CC_HAS_LONG_LONG to control
	how longest_to_int is defined.
	* c-valprint.c (c_val_print):  Call print_longest.
	* expprint.c (dump_expression):  Use PRINTF_HAS_LONG_LONG
	instead of LONG_LONG.
	* {printcmd.c, gdbtypes.h} (LONG_LONG):  Replace usages with
	CC_HAS_LONG_LONG.
	* printcmd.c (print_scalar_formatted):  Call print_longest
	and let it figure out what to do for PRINTF_HAS_LONG_LONG.
	* typeprint.c (print_type_scalar):  Call print_longest and let
	it figure out what to do for PRINTF_HAS_LONG_LONG.
	* valprint.c (val_print_type_code_int):  Call print_longest
	and let it figure out what to do for PRINTF_HAS_LONG_LONG.
	* stabsread.c (LONG_LONG):  Replace usages with CC_HAS_LONG_LONG.
	* value.h (struct value):  Replace usage of LONG_LONG with
	CC_HAS_LONG_LONG.
	* value.h (print_longest):  Add prototype.
	* values.c (LONG_LONG):  Replace usages with CC_HAS_LONG_LONG.
	* values.c (unpack_double):  Collapse code that was unnecessarily
	dependent on CC_HAS_LONG_LONG.  Use LONGEST instead of direct types.
	* values.c (value_from_longest):  Remove dependency on
	CC_HAS_LONG_LONG and just use LONGEST.
	* solib.c (solib_map_sections):  Use bfd_get_filename
	to access filename field.
	* solib.c (clear_solib):  Save filename and free it later, after
	bfd_close, since bfd_close may reference it.  Use bfd_get_filename
	to access the field.
	* config/convex/xm-convex.h (LONG_LONG):  Replace with
	CC_HAS_LONG_LONG.  Add define for PRINTF_HAS_LONG_LONG.
	* doc/gdbint.texinfo (LONG_LONG):  Replace with CC_HAS_LONG_LONG.
	Add PRINTF_HAS_LONG_LONG references.
1993-04-29 07:07:39 +00:00
Jim Kingdon
5afa2040f4 Thu Apr 22 14:50:05 1993 Jim Kingdon (kingdon@cygnus.com)
* symtab.h: Fix LOC_REF_ARG comment.

Wed Apr 22 20:21:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
			  and Jim Kingdon (kingdon@cygnus.com)

	* stabsread.c (define_symbol): Combine a 'p', 'r' arg pair to a
	LOC_REGPARM symbol.
	* config/sparc/tm-sparc.h (REG_STRUCT_HAS_ADDR): Revise comments.
	symfile.c (compare_symbols): Don't check first character; STRCMP
	does that.

	* stabsread.c (define_symbol): Generate a LOC_REGPARM_ADDR for
	structures that are passed by address in a register.
	* symtab.h (enum address_class): Add LOC_REGPARM_ADDR.
	* findvar.c (read_var_value),
	printcmd.c (address_info, print_frame_args),
	stack.c (print_frame_arg_vars), symmisc.c (print_{,partial_}symbol),
	* symtab.c (lookup_block_symbol): Deal with it.
1993-04-22 22:27:25 +00:00
Jim Kingdon
058eb7667b * xcoffread.c: Nuke NO_DEFINE_SYMBOL code. There is no going back.
* stabsread.c (define_symbol): 'R' is synonym for 'P', not 'r'.
	xcoffread.c (process_xcoff_symbol, case C_RPSYM):
	Don't muck with SYMBOL_CLASS.
1993-04-19 17:39:24 +00:00
Peter Schauer
39cb3d0488 * stabsread.c (read_member_functions): Initialize domain for stubbed
member functions to avoid gdb core dumps when printing pointers
	to member functions.
	* cp-valprint.c (cp_print_class_method): Check for stubbed member
	functions.
1993-04-14 19:53:11 +00:00
Per Bothner
8a177da658 * ch-exp.y: Remove ambiguities. Fix or add support for
UNOP_IND, UNOP_CAST, UNOP_ADDR, STRUCOP_STRUCT, OP_TYPE.
	* ch-typeprint.c (chill_print_type):  Move support
	for TYPE_CODE_ARRAY and TYPE_CODE_STRING from here ...
	* ch-typeprint.c (chill_type_print_base): ... here.
	* ch-typeprint.c (chill_type_print_base):  Improve
	support for PTR, REF, and FUNC types.
	* ch-valprint.c:  Prefer H'%x format to 0x%s.
	* ch-valprint.c (chill_val_print):  Add support for printing
	TYPE_CODE_REF (return for LOC parameters and variables).
	Use c_val_print to print random types (including ENUM).
	* ch-valprint,c (chill_print_value_fields):  Make
	output look more like Chill tuples.
	* stabsread.c (read_struct_type):  Factor common code.
1993-04-07 22:15:48 +00:00