Commit Graph

17 Commits

Author SHA1 Message Date
Per Bothner
bdef6b60f3 * ch-exp.y: Get rid of some extra non-terminals, and move
their rules into primitive_value.
	* ch-lang.c (chill_op_print_tab):  Add '->'.
	* expprint.c (print_subexp):  Recognize unary postfix operator.
1994-09-16 07:28:22 +00:00
Stan Shebs
901c2f5ffa * ch-lang.c (chill_language_defn): Ditto. 1994-08-04 00:38:39 +00:00
Per Bothner
e10cfcaa37 Fix value_print, which used to be ostensibly langauge-indepentdent,
but would print pointers and arrays in C syntax.  Instead, call
	a language-specific function.  See ChangeLog for details.
1994-06-05 01:43:40 +00:00
Per Bothner
73cd3b4911 * ch-lang.c (chill_is_varying_struct): Magic string is
was "<var_length>" is now "__var_length" (more portable).
1994-03-30 05:23:00 +00:00
Jim Kingdon
eade0c6ce8 * printcmd.c (decode_format): Don't blithely set the size for
an address to 'w'.  Make it 'g' or 'h', depending on TARGET_PTR_BIT.

	* defs.h: Just typedef CORE_ADDR to bfd_vma.  Include bfd.h.
	If BFD64, make a LONGEST a BFD_HOST_64_BIT.
	* defs.h (longest_to_int): Don't depend on CC_HAS_LONG_LONG; instead
	always just check against INT_MIN and INT_MAX (this also fixes things
	if sizeof (long) > sizeof (int), e.g. Alpha).
	* config/pa/tm-hppa.h, config/i386/sun386.h, config/rs6000/tm-rs6000.h:
	Don't define LONGEST or BUILTIN_TYPE_LONGEST.
	* gdbtypes.h: Remove BUILTIN_TYPE_LONGEST and
	BUILTIN_TYPE_UNSIGNED_LONGEST.
	* language.h, c-lang.c, ch-lang.c, m2-lang.c: Remove longest_int
	and longest_unsigned_int.
	* value.h (struct value): Just align to LONGEST, rather than worrying
	about CC_HAS_LONG_LONG.
	* valarith.c (value_binop, _initialize_valarith): Figure out type
	ourself based on sizeof (LONGEST) rather than relying on
	BUILTIN_TYPE_LONGEST.  The point is that we don't depend on
	CC_HAS_LONG_LONG anymore.
	* valprint.c (val_print_type_code_int): Just call
	extract_unsigned_integer directly, rather than going through
	unpack_long.
	* printcmd.c (decode_format): Remove code which would sometimes
	change 'g' size to 'w' for integers.  print_scalar_formatted handles
	printing huge integers well enough, thank you.
1994-02-03 03:18:58 +00:00
Per Bothner
96b6b765fc * ch-exp.y (match_string_literal): Allow a zero-length string.
* ch-lang.c (chill_printstr):  Don't print zero-length string funny.
1994-01-23 20:42:00 +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
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
Thomas Lord
199b2450f6 Change the stream argument to _filtered to GDB_FILE *.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.

Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')

Replaced calls to fopen for output to gdb_fopen.

Added sufficient goo to utils.c and defs.h to make the above work.

The net effect is that stdio output functions are only directly used
in utils.c.  Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.

In the near future, GDB_FILE will stop being equivalant to FILE.

The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior.  The testsuite doesn't notice anything
like this, though.

Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code.  All output from commands
should go to a GDB_FILE.

Target-specific code can still use stdio directly to communicate with
targets.
1993-11-01 22:25:23 +00:00
Jim Kingdon
5573d7d4b1 Tue Sep 28 09:45:38 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* symmisc.c (print_symbol): Use %02x not %2x for LOC_CONST_BYTES.

	Clean up problems with targets and hosts that have 64 bit longs
	and pointers and 32 bit ints.
	* breakpoint.c, buildsym.c, c-lang.c, c-valprint.c, ch-lang.c,
	ch-valprint.c, core.c, cp-valprint.c, dbxread.c, exec.c,
	expprint.c, gdbtypes.c, infcmd.c, language.c, language.h,
	m2-lang.c, maint.c, mips-tdep.c, mipsread.c, partial-stab.h,
	printcmd.c, remote-vx.c, solib.c, source.c, stack.c, symfile.c,
	symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c:
	Change all printf formats from %x to %lx if outputting an address.
	Change la_*_format to use long format.
	local_hex_string, local_hex_string_custom now take an unsigned long
	argument, change all callers.
	* coffread.c (read_coff_symtab):  Remove superfluous cast for
	complaint output.
	* dbxread.c (end_psymtab):  Cast MSYMBOL_INFO to long, not int.
	* findvar.c, value.h (write_register):  Change register value to long.
	* gdbtypes.h (struct type):  Change `bitsize' to long as
	TYPE_FIELD_STATIC_PHYSNAME uses this field as a pointer.
	* inferior.h (struct inferior_status):  Change type of stop_pc to
	CORE_ADDR.
	* language.h (local_octal_string, local_octal_string_custom):
	Remove prototype, the functions are neither defined nor used.
	* mipsread.c (parse_symbol):  Use temporary variable for bitsize as
	f->bitsize is a long now.
	* objfiles.c (add_to_objfile_sections, build_objfile_section_table):
	Use unsigned long casts instead of int for abusing sections_end
	pointer as integer.
	* stack.c (parse_frame_specification):  Change type of `args' to
	CORE_ADDR for SETUP_ARBITRARY_FRAME.

	* printcmd.c (make_vasize):  Allow redefinition via MAKEVA_SIZE.
	* mipsread.c (parse_type):  Alpha cc now supports the t->continued
	bit, update algorithm to match the way the compiler uses it.
1993-09-28 17:43:25 +00:00
Fred Fish
b6236d6ec4 * ch-lang.c (chill_create_fundamental_type): Track compiler
change that now emits debugging info with the type long for Chill
	longs.
	* dwarfread.c (read_tag_string_type):  Rewrite to allow forward
	references of TAG_string_type DIEs in user defined types.
1993-02-23 19:30:22 +00:00
Fred Fish
fcbadaee94 * eval.c (evaluate_subexp): Fix OP_ARRAY, remove code that
implied that "no side effects" was nonfunctional.
	* eval.c (evaluate_subexp):  Add BINOP_CONCAT case to deal with
	character string and bitstring concatenation.
	* expprint.c (dump_expression):  Add case for BINOP_CONCAT.
	* expression.h (exp_opcode):  Add BINOP_CONCAT.
	* gdbtypes.h (type_code):  Add TYPE_CODE_BITSTRING.
	* language.c (string_type):  Add function to determine if a type
	is a string type.
	* language.c (binop_type_check):  Add case for BINOP_CONCAT.
	* valarith.c (value_concat):  New function to concatenate two
	values, such as character strings or bitstrings.
	* valops.c (value_string):  Remove error stub and implement
	function body.
	* value.h (value_concat):  Add prototype.
	**** start-sanitize-chill ****
	* ch-exp.y (operand_3):  Add actions for SLASH_SLASH (//).
	* ch-exp.y (yylex):  Recognize SLASH_SLASH.
	* ch-lang.c (chill_op_print_tab):  Add SLASH_SLASH (//) as
	BINOP_CONCAT.
	**** end-sanitize-chill ****
1993-01-21 18:13:55 +00:00
Fred Fish
76a0ffb47b * expression.h (exp_opcode): Add BINOP_MOD.
* eval.c (evaluate_subexp):  Handle new BINOP_MOD.
	* expprint.c (dump_expression):  Handle new BINOP_MOD.
	* language.c (binop_type_check):  Handle new BINOP_MOD.
	* main.c (float_handler):  Re-enable float handler when hit.
	* valarith.c (language.h):  Include, need current_language.
	* valarith.c (TRUNCATION_TOWARDS_ZERO):  Define default macro
	for integer divide truncates towards zero for negative results.
	* valarith.c (value_x_binop):  Handle BINOP_MOD if seen.
	* valarith.c (value_binop):  Allow arithmetic operations on
	TYPE_CODE_CHAR variables.  Add case to handle new BINOP_MOD.
	**** start-sanitize-chill ****
	* ch-exp.y (operand_4):  Add useful actions for MOD and REM.
	* ch-exp.y (tokentab3):  Add MOD and REM.
	* ch-exp.y (yylex):  Set innermost_block for symbols found
	in local scopes.  Return LOCATION_NAME for local symbols.
	* ch-lang.c (chill_op_print_tab):  Fix MOD entry to use
	BINOP_MOD instead of BINOP_REM.  Add REM entry, using BINOP_REM.
	**** end-sanitize-chill ****
1993-01-05 01:18:07 +00:00
Fred Fish
7532cf103a * tm-sun4sol2.h (CPLUS_MARKER): Remove, now set in tm-sysv4.h.
* tm-sysv4.h (CPLUS_MARKER):  By default, g++ uses '.' as the
	CPLUS_MARKER for all SVR4 systems, so follow suit.
	* defs.h (strdup_demangled):  Remove prototype.
	* dwarfread.c (enum_type, synthesize_typedef):  Use new macro
	SYMBOL_INIT_LANGUAGE_SPECIFIC.
	* dwarfread.c (new_symbol):  Use SYMBOL_INIT_DEMANGLED_NAME.
	* minsyms.c (install_minimal_symbols, prim_record_minimal_symbol,
	prim_record_minimal_symbol_and_info):  Use new macro
	SYMBOL_INIT_LANGUAGE_SPECIFIC.
	* minsyms.c (install_minimal_symbols):  Use new macro
	SYMBOL_INIT_DEMANGLED_NAME.
	* stabsread.c (define_symbol):  Use new macro
	SYMBOL_INIT_DEMANGLED_NAME.
	* symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list):
	Use new macro SYMBOL_INIT_DEMANGLED_NAME.
	* symfile.h (ADD_PSYMBOL_VT_TO_LIST):  Use new macro
	SYMBOL_INIT_DEMANGLED_NAME.
	* symmisc.c (dump_msymbols, dump_symtab, print_partial_symbol):
	SYMBOL_DEMANGLED_NAME now tests language itself.
	* symtab.c (COMPLETION_LIST_ADD_SYMBOL):  SYMBOL_DEMANGLED_NAME
	now tests language itself.
	* symtab.h (SYMBOL_CPLUS_DEMANGLED_NAME):  New macro that does
	what SYMBOL_DEMANGLED_NAME used to do, directly access the C++
	mangled name member in the language dependent portion of a symbol.
	* symtab.h (SYMBOL_DEMANGLED_NAME):  New macro that returns the
	mangled name member appropriate for a symbol's language.
	* symtab.h (SYMBOL_SOURCE_NAME, SYMBOL_LINKAGE_NAME,
	SYMBOL_MATCHES_NAME, SYMBOL_MATCHES_REGEXP):
	SYMBOL_DEMANGLED_NAME now tests language itself.
	* symtab.h (SYMBOL_INIT_LANGUAGE_SPECIFIC):  New macro that
	initializes language dependent portion of symbol.
	* symtab.h (SYMBOL_INIT_DEMANGLED_NAME):  New macro that
	demangles and caches the demangled form of symbol names.
	* utils.c (fputs_demangled, fprint_symbol):  Use current language
	to select an appropriate demangling algorithm.
	* utils.c (strdup_demangled):  Remove, no longer used.
	**** start-sanitize-chill ****
	* symtab.h (SYMBOL_CHILL_DEMANGLED_NAME):  New macro that directly
	access the Chill mangled name member in the language dependent
	portion of a symbol.
	* ch-lang.c (chill_demangle):  New function, simple demangler.
	* defs.h (chill_demangle):  Add prototype.
	* symtab.h (language_dependent_info):  Add struct for Chill.
	**** end-sanitize-chill ****
1993-01-01 20:29:41 +00:00
Fred Fish
a8a69e6332 * Makefile.in (VERSION): Bump to 4.7.4.
* Makefile.in (SFILES_MAINDIR):  Add typeprint.c, c-typeprint.c,
	  m2-typeprint.c, c-valprint.c cp-valprint.c m2-valprint.c.
	* Makefile.in (HFILES):  Add valprint.h.
	* Makefile.in (OBS):  Add typeprint.o, c-typeprint.o,
	  m2-typeprint.o, c-valprint.o, cp-valprint.o m2-valprint.o.
	* typeprint.c, typeprint.h:  New files for language independent
	  type printing functions.
	* c-typeprint.c, m2-typeprint.c:  New files for language dependent
	  type printing functions and definitions.
	* valprint.h:  New include file for language independent value
	  printing definitions.
	* c-valprint.c, cp-valprint.c, m2-valprint.c:  New files for language
	  dependent value printing functions.
	* c-exp.y (production ptype):  Add range_type variable and use new
	  create_range_type function.
	* c-exp.y (tokentab2, tokentab3), c-lang.c (c_op_print_tab),
	  infcmd.c (path_var_name), language.c (unk_op_print_tab),
	  m2-lang.c (m2_op_print_tab):  Change from ANSI-obsolescent
	  "const static" to ANSI-conformant "static const".
	* c-exp.y (c_create_fundamental_type):  Remove unused nbytes.
	* c-exp.y (c_language_defn, cplus_language_defn):  Add c_print_type,
	  and c_val_print.
	* c-lang.h (c_print_type, c_val_print):  Add prototypes.
	* coffread.c (decode_type):  Add range_type variable and call to
	  new create_range_type function.
	* complaints.c (complain):  Remove unused val variable.
	* complaints.c (_initialize_complaints):  Make it void.
	* convex-tdep.c (value_of_trapped_internalvar):  Add range_type
	  variable and call new create_range_type function.
	* defs.h (enum val_prettyprint):  Move enum from value.h to here
	  so we can avoid having to include value.h just for prototypes that
	  need the enum (thanks ANSI).
	* dwarfread.c (struct_type):  Local anonymous_size variable is
	  only used if !BITS_BIG_ENDIAN.
	* dwarfread.c (decode_subscript_data_item):  Add rangetype
	  variable and call new create_range_type function.
	* elfread.c (elf_symfile_read):  Remove unused dbx and text_sect
	  variables.
	* eval.c (evaluate_subexp):  Remove unused local variable name
	  and the statement with no side effects that initializes it.
	* expprint.c (print_subexp):  Change local_printstr to
	  LA_PRINT_STRING.
	* gdbtypes.c (create_range_type):  New function that creates
	  a range type using code fragments from object file readers as
	  an example of what has to be initialized.
	* gdbtypes.c (create_array_type):  Removed index_type, low_bound,
	  and high_bound parameters, replaced with a single range_type
	  parameter.  Change function body to use passed in range_type
	  rather than handcrafting one.
	* gdbtypes.h (create_range_type):  Add prototype.
	* gdbtypes.h (create_array_type):  Change prototype parameters.
	* infrun.c (normal_stop):  Remove unused local variables tem and c.
	* infrun.c (hook_stop_stub):  Return 0 rather than random value.
	* language.c (unk_lang_print_type, unk_lang_val_print):  Add
	  stub functions that call error if called.
	* language.c (unknown_language_defn, auto_language_defn,
	  local_language_defn):  Add initializers unk_lang_print_type and
	  unk_lang_val_print.
	* language.h (struct language_defn):  Reformat for larger
	  comments, add la_print_type and la_val_print members.  Add
	  LA_PRINT_TYPE and LA_VAL_PRINT macros.  Change local_printchar
	  to LA_PRINT_CHAR and local_printstr to LA_PRINT_STRING.
	* m2-lang.c (m2_create_fundamental_type):  Remove unused local
	  variable nbytes.
	* m2-lang.c (m2_language_defn):  Add initializers m2_print_type
	  and m2_val_print.
	* m2-lang.h (m2_print_type, m2_val_print):  Add prototypes.
	* main.c (execute_command): Remove unused local variable cmdlines.
	* main.c (echo_command), stabsread.c (read_type), printcmd.c
	  (clear_displays), symmisc.c (block_depth), values.c
	  (clear_value_history):
	  Make testing of truth value of assignment result explicit.
	* mipsread.c (upgrade_type):  Update FIXME to include future use
	  of create_range_type.
	* printcmd.c (ptype_command, ptype_eval, whatis_command,
	  whatis_exp, maintenance_print_type):  Move prototypes and functions
	  to new typeprint.c.
	* printcmd.c (_initialize_printcmd):  Move add_com calls for
	  ptype_command and whatis_command to new typeprint.c.
	* ser-bsd.c (serial_open):  Remove unused variable sgttyb.
	* source.c (find_source_lines):  Local variable c only used
	  when LSEEK_NOT_LINEAR is defined.
	* stabsread.c (read_array_type):  Use new create_range_type
	  function.
	* stabsread.c (read_range_type):  Add new index_type variable and
	  call new create_range_type function rather than handcrafting
	  range types.
	* symmisc.c (type_print_1):  Change usages to LA_PRINT_TYPE.
	* symtab.c (typedef_print usages):  Use c_typedef_print, renamed.
	* symtab.c (type_print_base usages):  Use c_type_print_base.
	* symtab.c (type_print_varspec_prefix usages):  Use
	  c_type_print_varspec_prefix.
	* symtab.c (type_print_method_args usages):  Use
	  cp_type_print_method_args.
	* valprint.c:  Completely ripped apart and the fragments used
	  to create c-valprint.c, cp-valprint.c, m2-valprint.c, and
	  valprint.h.  Remaining stuff is language independent.
	* value.h (struct fn_field):  Forward declare for prototypes.
	* value.h (type_print_1):  Remove prototype.
	* value.h (enum val_prettyprint):  Moved to defs.h.
	* value.h (typedef_print):  Prototype renamed to c_typedef_print.
	* value.h (baseclass_offset):  Add prototype.
	**** start-sanitize-chill ****
	* Makefile.in (SFILES_MAINDIR):  Add ch-typeprint.c, ch-valprint.c.
	* Makefile.in (OBS):  Add ch-typeprint.o, ch-valprint.o.
	* ch-typeprint.c:  New file for language dependent type printing.
	* ch-valprint.c:  New file for language dependent value printing.
	* ch-exp.y (parse_number):  Remove prototype and stub function.
	* ch-exp.y (decode_integer_literal):  Removed unused digits and
	  temp variables.
	* ch-exp.y (convert_float):  Completely ifdef out for now.
	* ch-exp.y (tokentab2, tokentab3, tokentab4, tokentab5),
	  ch-lang.c (chill_op_print_tab):
	  Change from ANSI-obsolescent "const static" to ANSI-conformant
	  "static const".
	* ch-exp.y (yylex):  Add unhandled storage class enumeration
	  literals to switch statement for completeness.
	* ch-lang.c (chill_create_fundamental_types):  Remove unused
	  nbytes variable.  Change dummy type to 2 bytes to match int.
	  Handle FT_VOID types gratuituously added to chill DWARF by
	  compiler.  Change FT_CHAR case to generate an TYPE_CODE_CHAR
	  type rather than a one byte TYPE_CODE_INT type.
	* ch-lang.c (chill_language_defn):  Add chill_print_type and
	  chill_val_print.
	* ch-lang.h (chill_print_type, chill_val_print):  Add prototypes.
	**** end-sanitize-chill ****
1992-12-18 20:21:32 +00:00
Fred Fish
d62e7a20d8 * c-lang.c (_initialize_c_language): Name changed from
_initialize_c_exp.
	* m2-lang.c (_initialize_m2_language):  Name changed from
	_initialize_m2_exp.
	* m2-lang.c (_initialize_m2_language):  Change malloc to xmalloc since
	it is no longer inside m2-exp.y, where it was remapped by Makefile.
	**** start-sanitize-chill ****
	* ch-lang.c (_initialize_chill_language):  Name changed from
	_initialize_chill_exp.
	**** end-sanitize-chill ****
1992-12-09 07:01:43 +00:00
Fred Fish
22e3975901 * c-exp.y, m2-exp.y: Migrate code that has nothing to do with
expression parsing into c-lang.c and m2-lang.c respectively.
	* c-lang.c, m2-lang.c:  New files, code migrated from c-exp.y and
	m2-exp.y respectively.
	* c-lang.h, m2-lang.h:  New files, internal interfaces between c-*
	and m2-* files respectively.
	* Makefile.in (SFILES_MAINDIR):  Add c-lang.c, m2-lang.c.
	* Makefile.in (HFILES):  Add c-lang.h, m2-lang.h.
	* Makefile.in (OBS):  Add c-lang.o, m2-lang.o.
	* expression.h (struct block):  Forward declaration for prototypes.
	* language.h (struct objfile):  Forward declaration for prototypes.
	**** start-sanitize-chill ****
	* Makefile.in (SFILES_MAINDIR):  Add ch-lang.c.
	* Makefile.in (HFILES):  Add ch-lang.h.
	* Makefile.in (OBS):  Add ch-lang.o.
	* ch-exp.y:  Migrate code that has nothing to do with expression
	parsing into ch-lang.c.
	* ch-lang.c:  New file, code migrated from c-exp.y.
	* ch-lang.h:  New file, internal interface between ch-* files.
	**** end-sanitize-chill ****
1992-12-09 06:50:30 +00:00