mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
gdb, gdbserver, gdbsupport: fix leading space vs tabs issues
Many spots incorrectly use only spaces for indentation (for example, there are a lot of spots in ada-lang.c). I've always found it awkward when I needed to edit one of these spots: do I keep the original wrong indentation, or do I fix it? What if the lines around it are also wrong, do I fix them too? I probably don't want to fix them in the same patch, to avoid adding noise to my patch. So I propose to fix as much as possible once and for all (hopefully). One typical counter argument for this is that it makes code archeology more difficult, because git-blame will show this commit as the last change for these lines. My counter counter argument is: when git-blaming, you often need to do "blame the file at the parent commit" anyway, to go past some other refactor that touched the line you are interested in, but is not the change you are looking for. So you already need a somewhat efficient way to do this. Using some interactive tool, rather than plain git-blame, makes this trivial. For example, I use "tig blame <file>", where going back past the commit that changed the currently selected line is one keystroke. It looks like Magit in Emacs does it too (though I've never used it). Web viewers of Github and Gitlab do it too. My point is that it won't really make archeology more difficult. The other typical counter argument is that it will cause conflicts with existing patches. That's true... but it's a one time cost, and those are not conflicts that are difficult to resolve. I have also tried "git rebase --ignore-whitespace", it seems to work well. Although that will re-introduce the faulty indentation, so one needs to take care of fixing the indentation in the patch after that (which is easy). gdb/ChangeLog: * aarch64-linux-tdep.c: Fix indentation. * aarch64-ravenscar-thread.c: Fix indentation. * aarch64-tdep.c: Fix indentation. * aarch64-tdep.h: Fix indentation. * ada-lang.c: Fix indentation. * ada-lang.h: Fix indentation. * ada-tasks.c: Fix indentation. * ada-typeprint.c: Fix indentation. * ada-valprint.c: Fix indentation. * ada-varobj.c: Fix indentation. * addrmap.c: Fix indentation. * addrmap.h: Fix indentation. * agent.c: Fix indentation. * aix-thread.c: Fix indentation. * alpha-bsd-nat.c: Fix indentation. * alpha-linux-tdep.c: Fix indentation. * alpha-mdebug-tdep.c: Fix indentation. * alpha-nbsd-tdep.c: Fix indentation. * alpha-obsd-tdep.c: Fix indentation. * alpha-tdep.c: Fix indentation. * amd64-bsd-nat.c: Fix indentation. * amd64-darwin-tdep.c: Fix indentation. * amd64-linux-nat.c: Fix indentation. * amd64-linux-tdep.c: Fix indentation. * amd64-nat.c: Fix indentation. * amd64-obsd-tdep.c: Fix indentation. * amd64-tdep.c: Fix indentation. * amd64-windows-tdep.c: Fix indentation. * annotate.c: Fix indentation. * arc-tdep.c: Fix indentation. * arch-utils.c: Fix indentation. * arch/arm-get-next-pcs.c: Fix indentation. * arch/arm.c: Fix indentation. * arm-linux-nat.c: Fix indentation. * arm-linux-tdep.c: Fix indentation. * arm-nbsd-tdep.c: Fix indentation. * arm-pikeos-tdep.c: Fix indentation. * arm-tdep.c: Fix indentation. * arm-tdep.h: Fix indentation. * arm-wince-tdep.c: Fix indentation. * auto-load.c: Fix indentation. * auxv.c: Fix indentation. * avr-tdep.c: Fix indentation. * ax-gdb.c: Fix indentation. * ax-general.c: Fix indentation. * bfin-linux-tdep.c: Fix indentation. * block.c: Fix indentation. * block.h: Fix indentation. * blockframe.c: Fix indentation. * bpf-tdep.c: Fix indentation. * break-catch-sig.c: Fix indentation. * break-catch-syscall.c: Fix indentation. * break-catch-throw.c: Fix indentation. * breakpoint.c: Fix indentation. * breakpoint.h: Fix indentation. * bsd-uthread.c: Fix indentation. * btrace.c: Fix indentation. * build-id.c: Fix indentation. * buildsym-legacy.h: Fix indentation. * buildsym.c: Fix indentation. * c-typeprint.c: Fix indentation. * c-valprint.c: Fix indentation. * c-varobj.c: Fix indentation. * charset.c: Fix indentation. * cli/cli-cmds.c: Fix indentation. * cli/cli-decode.c: Fix indentation. * cli/cli-decode.h: Fix indentation. * cli/cli-script.c: Fix indentation. * cli/cli-setshow.c: Fix indentation. * coff-pe-read.c: Fix indentation. * coffread.c: Fix indentation. * compile/compile-cplus-types.c: Fix indentation. * compile/compile-object-load.c: Fix indentation. * compile/compile-object-run.c: Fix indentation. * completer.c: Fix indentation. * corefile.c: Fix indentation. * corelow.c: Fix indentation. * cp-abi.h: Fix indentation. * cp-namespace.c: Fix indentation. * cp-support.c: Fix indentation. * cp-valprint.c: Fix indentation. * cris-linux-tdep.c: Fix indentation. * cris-tdep.c: Fix indentation. * darwin-nat-info.c: Fix indentation. * darwin-nat.c: Fix indentation. * darwin-nat.h: Fix indentation. * dbxread.c: Fix indentation. * dcache.c: Fix indentation. * disasm.c: Fix indentation. * dtrace-probe.c: Fix indentation. * dwarf2/abbrev.c: Fix indentation. * dwarf2/attribute.c: Fix indentation. * dwarf2/expr.c: Fix indentation. * dwarf2/frame.c: Fix indentation. * dwarf2/index-cache.c: Fix indentation. * dwarf2/index-write.c: Fix indentation. * dwarf2/line-header.c: Fix indentation. * dwarf2/loc.c: Fix indentation. * dwarf2/macro.c: Fix indentation. * dwarf2/read.c: Fix indentation. * dwarf2/read.h: Fix indentation. * elfread.c: Fix indentation. * eval.c: Fix indentation. * event-top.c: Fix indentation. * exec.c: Fix indentation. * exec.h: Fix indentation. * expprint.c: Fix indentation. * f-lang.c: Fix indentation. * f-typeprint.c: Fix indentation. * f-valprint.c: Fix indentation. * fbsd-nat.c: Fix indentation. * fbsd-tdep.c: Fix indentation. * findvar.c: Fix indentation. * fork-child.c: Fix indentation. * frame-unwind.c: Fix indentation. * frame-unwind.h: Fix indentation. * frame.c: Fix indentation. * frv-linux-tdep.c: Fix indentation. * frv-tdep.c: Fix indentation. * frv-tdep.h: Fix indentation. * ft32-tdep.c: Fix indentation. * gcore.c: Fix indentation. * gdb_bfd.c: Fix indentation. * gdbarch.sh: Fix indentation. * gdbarch.c: Re-generate * gdbarch.h: Re-generate. * gdbcore.h: Fix indentation. * gdbthread.h: Fix indentation. * gdbtypes.c: Fix indentation. * gdbtypes.h: Fix indentation. * glibc-tdep.c: Fix indentation. * gnu-nat.c: Fix indentation. * gnu-nat.h: Fix indentation. * gnu-v2-abi.c: Fix indentation. * gnu-v3-abi.c: Fix indentation. * go32-nat.c: Fix indentation. * guile/guile-internal.h: Fix indentation. * guile/scm-cmd.c: Fix indentation. * guile/scm-frame.c: Fix indentation. * guile/scm-iterator.c: Fix indentation. * guile/scm-math.c: Fix indentation. * guile/scm-ports.c: Fix indentation. * guile/scm-pretty-print.c: Fix indentation. * guile/scm-value.c: Fix indentation. * h8300-tdep.c: Fix indentation. * hppa-linux-nat.c: Fix indentation. * hppa-linux-tdep.c: Fix indentation. * hppa-nbsd-nat.c: Fix indentation. * hppa-nbsd-tdep.c: Fix indentation. * hppa-obsd-nat.c: Fix indentation. * hppa-tdep.c: Fix indentation. * hppa-tdep.h: Fix indentation. * i386-bsd-nat.c: Fix indentation. * i386-darwin-nat.c: Fix indentation. * i386-darwin-tdep.c: Fix indentation. * i386-dicos-tdep.c: Fix indentation. * i386-gnu-nat.c: Fix indentation. * i386-linux-nat.c: Fix indentation. * i386-linux-tdep.c: Fix indentation. * i386-nto-tdep.c: Fix indentation. * i386-obsd-tdep.c: Fix indentation. * i386-sol2-nat.c: Fix indentation. * i386-tdep.c: Fix indentation. * i386-tdep.h: Fix indentation. * i386-windows-tdep.c: Fix indentation. * i387-tdep.c: Fix indentation. * i387-tdep.h: Fix indentation. * ia64-libunwind-tdep.c: Fix indentation. * ia64-libunwind-tdep.h: Fix indentation. * ia64-linux-nat.c: Fix indentation. * ia64-linux-tdep.c: Fix indentation. * ia64-tdep.c: Fix indentation. * ia64-tdep.h: Fix indentation. * ia64-vms-tdep.c: Fix indentation. * infcall.c: Fix indentation. * infcmd.c: Fix indentation. * inferior.c: Fix indentation. * infrun.c: Fix indentation. * iq2000-tdep.c: Fix indentation. * language.c: Fix indentation. * linespec.c: Fix indentation. * linux-fork.c: Fix indentation. * linux-nat.c: Fix indentation. * linux-tdep.c: Fix indentation. * linux-thread-db.c: Fix indentation. * lm32-tdep.c: Fix indentation. * m2-lang.c: Fix indentation. * m2-typeprint.c: Fix indentation. * m2-valprint.c: Fix indentation. * m32c-tdep.c: Fix indentation. * m32r-linux-tdep.c: Fix indentation. * m32r-tdep.c: Fix indentation. * m68hc11-tdep.c: Fix indentation. * m68k-bsd-nat.c: Fix indentation. * m68k-linux-nat.c: Fix indentation. * m68k-linux-tdep.c: Fix indentation. * m68k-tdep.c: Fix indentation. * machoread.c: Fix indentation. * macrocmd.c: Fix indentation. * macroexp.c: Fix indentation. * macroscope.c: Fix indentation. * macrotab.c: Fix indentation. * macrotab.h: Fix indentation. * main.c: Fix indentation. * mdebugread.c: Fix indentation. * mep-tdep.c: Fix indentation. * mi/mi-cmd-catch.c: Fix indentation. * mi/mi-cmd-disas.c: Fix indentation. * mi/mi-cmd-env.c: Fix indentation. * mi/mi-cmd-stack.c: Fix indentation. * mi/mi-cmd-var.c: Fix indentation. * mi/mi-cmds.c: Fix indentation. * mi/mi-main.c: Fix indentation. * mi/mi-parse.c: Fix indentation. * microblaze-tdep.c: Fix indentation. * minidebug.c: Fix indentation. * minsyms.c: Fix indentation. * mips-linux-nat.c: Fix indentation. * mips-linux-tdep.c: Fix indentation. * mips-nbsd-tdep.c: Fix indentation. * mips-tdep.c: Fix indentation. * mn10300-linux-tdep.c: Fix indentation. * mn10300-tdep.c: Fix indentation. * moxie-tdep.c: Fix indentation. * msp430-tdep.c: Fix indentation. * namespace.h: Fix indentation. * nat/fork-inferior.c: Fix indentation. * nat/gdb_ptrace.h: Fix indentation. * nat/linux-namespaces.c: Fix indentation. * nat/linux-osdata.c: Fix indentation. * nat/netbsd-nat.c: Fix indentation. * nat/x86-dregs.c: Fix indentation. * nbsd-nat.c: Fix indentation. * nbsd-tdep.c: Fix indentation. * nios2-linux-tdep.c: Fix indentation. * nios2-tdep.c: Fix indentation. * nto-procfs.c: Fix indentation. * nto-tdep.c: Fix indentation. * objfiles.c: Fix indentation. * objfiles.h: Fix indentation. * opencl-lang.c: Fix indentation. * or1k-tdep.c: Fix indentation. * osabi.c: Fix indentation. * osabi.h: Fix indentation. * osdata.c: Fix indentation. * p-lang.c: Fix indentation. * p-typeprint.c: Fix indentation. * p-valprint.c: Fix indentation. * parse.c: Fix indentation. * ppc-linux-nat.c: Fix indentation. * ppc-linux-tdep.c: Fix indentation. * ppc-nbsd-nat.c: Fix indentation. * ppc-nbsd-tdep.c: Fix indentation. * ppc-obsd-nat.c: Fix indentation. * ppc-ravenscar-thread.c: Fix indentation. * ppc-sysv-tdep.c: Fix indentation. * ppc64-tdep.c: Fix indentation. * printcmd.c: Fix indentation. * proc-api.c: Fix indentation. * producer.c: Fix indentation. * producer.h: Fix indentation. * prologue-value.c: Fix indentation. * prologue-value.h: Fix indentation. * psymtab.c: Fix indentation. * python/py-arch.c: Fix indentation. * python/py-bpevent.c: Fix indentation. * python/py-event.c: Fix indentation. * python/py-event.h: Fix indentation. * python/py-finishbreakpoint.c: Fix indentation. * python/py-frame.c: Fix indentation. * python/py-framefilter.c: Fix indentation. * python/py-inferior.c: Fix indentation. * python/py-infthread.c: Fix indentation. * python/py-objfile.c: Fix indentation. * python/py-prettyprint.c: Fix indentation. * python/py-registers.c: Fix indentation. * python/py-signalevent.c: Fix indentation. * python/py-stopevent.c: Fix indentation. * python/py-stopevent.h: Fix indentation. * python/py-threadevent.c: Fix indentation. * python/py-tui.c: Fix indentation. * python/py-unwind.c: Fix indentation. * python/py-value.c: Fix indentation. * python/py-xmethods.c: Fix indentation. * python/python-internal.h: Fix indentation. * python/python.c: Fix indentation. * ravenscar-thread.c: Fix indentation. * record-btrace.c: Fix indentation. * record-full.c: Fix indentation. * record.c: Fix indentation. * reggroups.c: Fix indentation. * regset.h: Fix indentation. * remote-fileio.c: Fix indentation. * remote.c: Fix indentation. * reverse.c: Fix indentation. * riscv-linux-tdep.c: Fix indentation. * riscv-ravenscar-thread.c: Fix indentation. * riscv-tdep.c: Fix indentation. * rl78-tdep.c: Fix indentation. * rs6000-aix-tdep.c: Fix indentation. * rs6000-lynx178-tdep.c: Fix indentation. * rs6000-nat.c: Fix indentation. * rs6000-tdep.c: Fix indentation. * rust-lang.c: Fix indentation. * rx-tdep.c: Fix indentation. * s12z-tdep.c: Fix indentation. * s390-linux-tdep.c: Fix indentation. * score-tdep.c: Fix indentation. * ser-base.c: Fix indentation. * ser-mingw.c: Fix indentation. * ser-uds.c: Fix indentation. * ser-unix.c: Fix indentation. * serial.c: Fix indentation. * sh-linux-tdep.c: Fix indentation. * sh-nbsd-tdep.c: Fix indentation. * sh-tdep.c: Fix indentation. * skip.c: Fix indentation. * sol-thread.c: Fix indentation. * solib-aix.c: Fix indentation. * solib-darwin.c: Fix indentation. * solib-frv.c: Fix indentation. * solib-svr4.c: Fix indentation. * solib.c: Fix indentation. * source.c: Fix indentation. * sparc-linux-tdep.c: Fix indentation. * sparc-nbsd-tdep.c: Fix indentation. * sparc-obsd-tdep.c: Fix indentation. * sparc-ravenscar-thread.c: Fix indentation. * sparc-tdep.c: Fix indentation. * sparc64-linux-tdep.c: Fix indentation. * sparc64-nbsd-tdep.c: Fix indentation. * sparc64-obsd-tdep.c: Fix indentation. * sparc64-tdep.c: Fix indentation. * stabsread.c: Fix indentation. * stack.c: Fix indentation. * stap-probe.c: Fix indentation. * stubs/ia64vms-stub.c: Fix indentation. * stubs/m32r-stub.c: Fix indentation. * stubs/m68k-stub.c: Fix indentation. * stubs/sh-stub.c: Fix indentation. * stubs/sparc-stub.c: Fix indentation. * symfile-mem.c: Fix indentation. * symfile.c: Fix indentation. * symfile.h: Fix indentation. * symmisc.c: Fix indentation. * symtab.c: Fix indentation. * symtab.h: Fix indentation. * target-float.c: Fix indentation. * target.c: Fix indentation. * target.h: Fix indentation. * tic6x-tdep.c: Fix indentation. * tilegx-linux-tdep.c: Fix indentation. * tilegx-tdep.c: Fix indentation. * top.c: Fix indentation. * tracefile-tfile.c: Fix indentation. * tracepoint.c: Fix indentation. * tui/tui-disasm.c: Fix indentation. * tui/tui-io.c: Fix indentation. * tui/tui-regs.c: Fix indentation. * tui/tui-stack.c: Fix indentation. * tui/tui-win.c: Fix indentation. * tui/tui-winsource.c: Fix indentation. * tui/tui.c: Fix indentation. * typeprint.c: Fix indentation. * ui-out.h: Fix indentation. * unittests/copy_bitwise-selftests.c: Fix indentation. * unittests/memory-map-selftests.c: Fix indentation. * utils.c: Fix indentation. * v850-tdep.c: Fix indentation. * valarith.c: Fix indentation. * valops.c: Fix indentation. * valprint.c: Fix indentation. * valprint.h: Fix indentation. * value.c: Fix indentation. * value.h: Fix indentation. * varobj.c: Fix indentation. * vax-tdep.c: Fix indentation. * windows-nat.c: Fix indentation. * windows-tdep.c: Fix indentation. * xcoffread.c: Fix indentation. * xml-syscall.c: Fix indentation. * xml-tdesc.c: Fix indentation. * xstormy16-tdep.c: Fix indentation. * xtensa-config.c: Fix indentation. * xtensa-linux-nat.c: Fix indentation. * xtensa-linux-tdep.c: Fix indentation. * xtensa-tdep.c: Fix indentation. gdbserver/ChangeLog: * ax.cc: Fix indentation. * dll.cc: Fix indentation. * inferiors.h: Fix indentation. * linux-low.cc: Fix indentation. * linux-nios2-low.cc: Fix indentation. * linux-ppc-ipa.cc: Fix indentation. * linux-ppc-low.cc: Fix indentation. * linux-x86-low.cc: Fix indentation. * linux-xtensa-low.cc: Fix indentation. * regcache.cc: Fix indentation. * server.cc: Fix indentation. * tracepoint.cc: Fix indentation. gdbsupport/ChangeLog: * common-exceptions.h: Fix indentation. * event-loop.cc: Fix indentation. * fileio.cc: Fix indentation. * filestuff.cc: Fix indentation. * gdb-dlfcn.cc: Fix indentation. * gdb_string_view.h: Fix indentation. * job-control.cc: Fix indentation. * signals.cc: Fix indentation. Change-Id: I4bad7ae6be0fbe14168b8ebafb98ffe14964a695
This commit is contained in:
@ -208,7 +208,7 @@ primary : primary '(' arglist ')'
|
||||
write_exp_elt_opcode (pstate, OP_FUNCALL);
|
||||
write_exp_elt_longcst (pstate, $3);
|
||||
write_exp_elt_opcode (pstate, OP_FUNCALL);
|
||||
}
|
||||
}
|
||||
| var_or_type '(' arglist ')'
|
||||
{
|
||||
if ($1 != NULL)
|
||||
@ -248,7 +248,7 @@ primary :
|
||||
{ write_exp_elt_opcode (pstate, TERNOP_SLICE); }
|
||||
| var_or_type '(' simple_exp DOTDOT simple_exp ')'
|
||||
{ if ($1 == NULL)
|
||||
write_exp_elt_opcode (pstate, TERNOP_SLICE);
|
||||
write_exp_elt_opcode (pstate, TERNOP_SLICE);
|
||||
else
|
||||
error (_("Cannot slice a type"));
|
||||
}
|
||||
@ -280,7 +280,7 @@ primary : DOLLAR_VARIABLE /* Various GDB extensions */
|
||||
;
|
||||
|
||||
primary : aggregate
|
||||
;
|
||||
;
|
||||
|
||||
simple_exp : primary
|
||||
;
|
||||
@ -380,7 +380,7 @@ relation : simple_exp LEQ simple_exp
|
||||
|
||||
relation : simple_exp IN simple_exp DOTDOT simple_exp
|
||||
{ write_exp_elt_opcode (pstate, TERNOP_IN_RANGE); }
|
||||
| simple_exp IN primary TICK_RANGE tick_arglist
|
||||
| simple_exp IN primary TICK_RANGE tick_arglist
|
||||
{ write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
|
||||
write_exp_elt_longcst (pstate, (LONGEST) $5);
|
||||
write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
|
||||
@ -390,27 +390,27 @@ relation : simple_exp IN simple_exp DOTDOT simple_exp
|
||||
if ($3 == NULL)
|
||||
error (_("Right operand of 'in' must be type"));
|
||||
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
|
||||
write_exp_elt_type (pstate, $3);
|
||||
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
|
||||
write_exp_elt_type (pstate, $3);
|
||||
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
|
||||
}
|
||||
| simple_exp NOT IN simple_exp DOTDOT simple_exp
|
||||
{ write_exp_elt_opcode (pstate, TERNOP_IN_RANGE);
|
||||
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
|
||||
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
|
||||
}
|
||||
| simple_exp NOT IN primary TICK_RANGE tick_arglist
|
||||
| simple_exp NOT IN primary TICK_RANGE tick_arglist
|
||||
{ write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
|
||||
write_exp_elt_longcst (pstate, (LONGEST) $6);
|
||||
write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
|
||||
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
|
||||
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
|
||||
}
|
||||
| simple_exp NOT IN var_or_type %prec TICK_ACCESS
|
||||
{
|
||||
if ($4 == NULL)
|
||||
error (_("Right operand of 'in' must be type"));
|
||||
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
|
||||
write_exp_elt_type (pstate, $4);
|
||||
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
|
||||
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
|
||||
write_exp_elt_type (pstate, $4);
|
||||
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
|
||||
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
|
||||
}
|
||||
;
|
||||
|
||||
@ -446,7 +446,7 @@ and_then_exp :
|
||||
{ write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
|
||||
| and_then_exp _AND_ THEN relation
|
||||
{ write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
|
||||
;
|
||||
;
|
||||
|
||||
or_exp :
|
||||
relation OR relation
|
||||
@ -460,13 +460,13 @@ or_else_exp :
|
||||
{ write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
|
||||
| or_else_exp OR ELSE relation
|
||||
{ write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
|
||||
;
|
||||
;
|
||||
|
||||
xor_exp : relation XOR relation
|
||||
{ write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
|
||||
| xor_exp XOR relation
|
||||
{ write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
|
||||
;
|
||||
;
|
||||
|
||||
/* Primaries can denote types (OP_TYPE). In cases such as
|
||||
primary TICK_ADDRESS, where a type would be invalid, it will be
|
||||
@ -494,13 +494,13 @@ primary : primary TICK_ACCESS
|
||||
| primary TICK_LENGTH tick_arglist
|
||||
{ write_int (pstate, $3, type_int (pstate));
|
||||
write_exp_elt_opcode (pstate, OP_ATR_LENGTH); }
|
||||
| primary TICK_SIZE
|
||||
| primary TICK_SIZE
|
||||
{ write_exp_elt_opcode (pstate, OP_ATR_SIZE); }
|
||||
| primary TICK_TAG
|
||||
{ write_exp_elt_opcode (pstate, OP_ATR_TAG); }
|
||||
| opt_type_prefix TICK_MIN '(' exp ',' exp ')'
|
||||
| opt_type_prefix TICK_MIN '(' exp ',' exp ')'
|
||||
{ write_exp_elt_opcode (pstate, OP_ATR_MIN); }
|
||||
| opt_type_prefix TICK_MAX '(' exp ',' exp ')'
|
||||
| opt_type_prefix TICK_MAX '(' exp ',' exp ')'
|
||||
{ write_exp_elt_opcode (pstate, OP_ATR_MAX); }
|
||||
| opt_type_prefix TICK_POS '(' exp ')'
|
||||
{ write_exp_elt_opcode (pstate, OP_ATR_POS); }
|
||||
@ -517,7 +517,7 @@ tick_arglist : %prec '('
|
||||
;
|
||||
|
||||
type_prefix :
|
||||
var_or_type
|
||||
var_or_type
|
||||
{
|
||||
if ($1 == NULL)
|
||||
error (_("Prefix must be type"));
|
||||
@ -541,7 +541,7 @@ primary : INT
|
||||
;
|
||||
|
||||
primary : CHARLIT
|
||||
{ write_int (pstate,
|
||||
{ write_int (pstate,
|
||||
convert_char_literal (type_qualifier, $1.val),
|
||||
(type_qualifier == NULL)
|
||||
? $1.type : type_qualifier);
|
||||
@ -568,7 +568,7 @@ primary : STRING
|
||||
|
||||
primary : TRUEKEYWORD
|
||||
{ write_int (pstate, 1, type_boolean (pstate)); }
|
||||
| FALSEKEYWORD
|
||||
| FALSEKEYWORD
|
||||
{ write_int (pstate, 0, type_boolean (pstate)); }
|
||||
;
|
||||
|
||||
@ -579,7 +579,7 @@ primary : NEW NAME
|
||||
var_or_type: NAME %prec VAR
|
||||
{ $$ = write_var_or_type (pstate, NULL, $1); }
|
||||
| block NAME %prec VAR
|
||||
{ $$ = write_var_or_type (pstate, $1, $2); }
|
||||
{ $$ = write_var_or_type (pstate, $1, $2); }
|
||||
| NAME TICK_ACCESS
|
||||
{
|
||||
$$ = write_var_or_type (pstate, NULL, $1);
|
||||
@ -611,7 +611,7 @@ aggregate :
|
||||
write_exp_elt_opcode (pstate, OP_AGGREGATE);
|
||||
write_exp_elt_longcst (pstate, $2);
|
||||
write_exp_elt_opcode (pstate, OP_AGGREGATE);
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
aggregate_component_list :
|
||||
@ -658,7 +658,7 @@ component_group :
|
||||
write_exp_elt_opcode (pstate, OP_CHOICES);
|
||||
write_exp_elt_longcst (pstate, $1);
|
||||
write_exp_elt_opcode (pstate, OP_CHOICES);
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
/* We use this somewhat obscure definition in order to handle NAME => and
|
||||
@ -679,10 +679,10 @@ component_associations :
|
||||
}
|
||||
exp { $$ = 1; }
|
||||
| NAME '|'
|
||||
{ write_name_assoc (pstate, $1); }
|
||||
{ write_name_assoc (pstate, $1); }
|
||||
component_associations { $$ = $4 + 1; }
|
||||
| simple_exp '|'
|
||||
component_associations { $$ = $3 + 1; }
|
||||
component_associations { $$ = $3 + 1; }
|
||||
| simple_exp DOTDOT simple_exp '|'
|
||||
{ write_exp_elt_opcode (pstate, OP_DISCRETE_RANGE); }
|
||||
component_associations { $$ = $6 + 1; }
|
||||
@ -851,9 +851,9 @@ write_object_renaming (struct parser_state *par_state,
|
||||
|
||||
switch (*renaming_expr) {
|
||||
case 'A':
|
||||
renaming_expr += 1;
|
||||
write_exp_elt_opcode (par_state, UNOP_IND);
|
||||
break;
|
||||
renaming_expr += 1;
|
||||
write_exp_elt_opcode (par_state, UNOP_IND);
|
||||
break;
|
||||
case 'L':
|
||||
slice_state = LOWER_BOUND;
|
||||
/* FALLTHROUGH */
|
||||
@ -1124,7 +1124,7 @@ write_ambiguous_var (struct parser_state *par_state,
|
||||
|
||||
static int
|
||||
ada_nget_field_index (const struct type *type, const char *field_name0,
|
||||
int field_name_len, int maybe_missing)
|
||||
int field_name_len, int maybe_missing)
|
||||
{
|
||||
char *field_name = (char *) alloca ((field_name_len + 1) * sizeof (char));
|
||||
|
||||
@ -1162,7 +1162,7 @@ get_symbol_field_type (struct symbol *sym, char *encoded_field_name)
|
||||
|
||||
fieldno = ada_get_field_index (type, field_name, 1);
|
||||
if (fieldno >= 0)
|
||||
return type->field (fieldno).type ();
|
||||
return type->field (fieldno).type ();
|
||||
|
||||
subfield_name = field_name;
|
||||
while (*subfield_name != '\0' && *subfield_name != '.'
|
||||
@ -1170,12 +1170,12 @@ get_symbol_field_type (struct symbol *sym, char *encoded_field_name)
|
||||
subfield_name += 1;
|
||||
|
||||
if (subfield_name[0] == '\0')
|
||||
return NULL;
|
||||
return NULL;
|
||||
|
||||
fieldno = ada_nget_field_index (type, field_name,
|
||||
subfield_name - field_name, 1);
|
||||
subfield_name - field_name, 1);
|
||||
if (fieldno < 0)
|
||||
return NULL;
|
||||
return NULL;
|
||||
|
||||
type = type->field (fieldno).type ();
|
||||
field_name = subfield_name;
|
||||
@ -1248,7 +1248,7 @@ write_var_or_type (struct parser_state *par_state,
|
||||
case ADA_EXCEPTION_RENAMING:
|
||||
case ADA_SUBPROGRAM_RENAMING:
|
||||
{
|
||||
int alloc_len = renaming_len + name_len - tail_index + 1;
|
||||
int alloc_len = renaming_len + name_len - tail_index + 1;
|
||||
char *new_name
|
||||
= (char *) obstack_alloc (&temp_parse_space, alloc_len);
|
||||
strncpy (new_name, renaming, renaming_len);
|
||||
@ -1269,21 +1269,21 @@ write_var_or_type (struct parser_state *par_state,
|
||||
|
||||
if (type_sym != NULL)
|
||||
{
|
||||
struct type *field_type;
|
||||
|
||||
if (tail_index == name_len)
|
||||
struct type *field_type;
|
||||
|
||||
if (tail_index == name_len)
|
||||
return SYMBOL_TYPE (type_sym);
|
||||
|
||||
/* We have some extraneous characters after the type name.
|
||||
If this is an expression "TYPE_NAME.FIELD0.[...].FIELDN",
|
||||
then try to get the type of FIELDN. */
|
||||
field_type
|
||||
= get_symbol_field_type (type_sym, encoded_name + tail_index);
|
||||
if (field_type != NULL)
|
||||
/* We have some extraneous characters after the type name.
|
||||
If this is an expression "TYPE_NAME.FIELD0.[...].FIELDN",
|
||||
then try to get the type of FIELDN. */
|
||||
field_type
|
||||
= get_symbol_field_type (type_sym, encoded_name + tail_index);
|
||||
if (field_type != NULL)
|
||||
return field_type;
|
||||
else
|
||||
error (_("Invalid attempt to select from type: \"%s\"."),
|
||||
name0.ptr);
|
||||
name0.ptr);
|
||||
}
|
||||
else if (tail_index == name_len && nsyms == 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user