X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fp-lang.c;h=8ff2682bf26de85c86aab94893e1f938c77146fd;hb=11cf4ffb5e256d268a8f4cea0fc88a0a46bf824c;hp=c59ba0bd71d165a2ec18a23e5f043eb25addbea9;hpb=a5ee536be2c16fcbe223490358dbe4d1914f0e1a;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/p-lang.c b/gdb/p-lang.c index c59ba0bd71..8ff2682bf2 100644 --- a/gdb/p-lang.c +++ b/gdb/p-lang.c @@ -1,7 +1,6 @@ /* Pascal language support routines for GDB, the GNU debugger. - Copyright (C) 2000, 2002-2005, 2007-2012 Free Software Foundation, - Inc. + Copyright (C) 2000-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -21,12 +20,12 @@ /* This file is derived from c-lang.c */ #include "defs.h" -#include "gdb_string.h" #include "symtab.h" #include "gdbtypes.h" #include "expression.h" #include "parser-defs.h" #include "language.h" +#include "varobj.h" #include "p-lang.h" #include "valprint.h" #include "value.h" @@ -59,23 +58,23 @@ static const char GPC_MAIN_PROGRAM_NAME_2[] = "pascal_main_program"; const char * pascal_main_name (void) { - struct minimal_symbol *msym; + struct bound_minimal_symbol msym; msym = lookup_minimal_symbol (GPC_P_INITIALIZE, NULL, NULL); /* If '_p_initialize' was not found, the main program is likely not written in Pascal. */ - if (msym == NULL) + if (msym.minsym == NULL) return NULL; msym = lookup_minimal_symbol (GPC_MAIN_PROGRAM_NAME_1, NULL, NULL); - if (msym != NULL) + if (msym.minsym != NULL) { return GPC_MAIN_PROGRAM_NAME_1; } msym = lookup_minimal_symbol (GPC_MAIN_PROGRAM_NAME_2, NULL, NULL); - if (msym != NULL) + if (msym.minsym != NULL) { return GPC_MAIN_PROGRAM_NAME_2; } @@ -280,10 +279,7 @@ pascal_printstr (struct ui_file *stream, struct type *type, { if (in_quotes) { - if (options->inspect_it) - fputs_filtered ("\\', ", stream); - else - fputs_filtered ("', ", stream); + fputs_filtered ("', ", stream); in_quotes = 0; } pascal_printchar (current_char, type, stream); @@ -296,10 +292,7 @@ pascal_printstr (struct ui_file *stream, struct type *type, { if ((!in_quotes) && (PRINT_LITERAL_FORM (current_char))) { - if (options->inspect_it) - fputs_filtered ("\\'", stream); - else - fputs_filtered ("'", stream); + fputs_filtered ("'", stream); in_quotes = 1; } pascal_one_char (current_char, stream, &in_quotes); @@ -309,12 +302,7 @@ pascal_printstr (struct ui_file *stream, struct type *type, /* Terminate the quotes if necessary. */ if (in_quotes) - { - if (options->inspect_it) - fputs_filtered ("\\'", stream); - else - fputs_filtered ("'", stream); - } + fputs_filtered ("'", stream); if (force_ellipses || i < length) fputs_filtered ("...", stream); @@ -351,7 +339,7 @@ const struct op_print pascal_op_print_tab[] = {"^", UNOP_IND, PREC_SUFFIX, 1}, {"@", UNOP_ADDR, PREC_PREFIX, 0}, {"sizeof", UNOP_SIZEOF, PREC_PREFIX, 0}, - {NULL, 0, 0, 0} + {NULL, OP_NULL, PREC_PREFIX, 0} }; enum pascal_primitive_types { @@ -427,15 +415,15 @@ pascal_language_arch_info (struct gdbarch *gdbarch, const struct language_defn pascal_language_defn = { "pascal", /* Language name */ + "Pascal", language_pascal, range_check_on, - type_check_on, case_sensitive_on, array_row_major, macro_expansion_no, &exp_descriptor_standard, pascal_parse, - pascal_error, + pascal_yyerror, null_post_parser, pascal_printchar, /* Print a character constant */ pascal_printstr, /* Function to print string constant */ @@ -462,6 +450,9 @@ const struct language_defn pascal_language_defn = default_get_string, NULL, /* la_get_symbol_name_cmp */ iterate_over_symbols, + &default_varobj_ops, + NULL, + NULL, LANG_MAGIC };