summaryrefslogtreecommitdiff
path: root/cross/avr-gdb/patches/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to 'cross/avr-gdb/patches/patch-aa')
-rw-r--r--cross/avr-gdb/patches/patch-aa24
1 files changed, 24 insertions, 0 deletions
diff --git a/cross/avr-gdb/patches/patch-aa b/cross/avr-gdb/patches/patch-aa
new file mode 100644
index 00000000000..4cde547d586
--- /dev/null
+++ b/cross/avr-gdb/patches/patch-aa
@@ -0,0 +1,24 @@
+$NetBSD: patch-aa,v 1.1.1.1 2003/07/16 22:11:31 wennmach Exp $
+
+Index: gdb/avr-tdep.c
+===================================================================
+RCS file: /cvs/src/src/gdb/avr-tdep.c,v
+retrieving revision 1.4
+diff -u -p -r1.4 avr-tdep.c
+--- gdb/avr-tdep.c 17 Jun 2002 23:32:27 -0000 1.4
++++ gdb/avr-tdep.c 19 Jul 2002 18:33:30 -0000
+@@ -995,7 +995,12 @@ avr_skip_prologue (CORE_ADDR pc)
+ {
+ sal = find_pc_line (func_addr, 0);
+
+- if (sal.line != 0 && sal.end < func_end)
++ /* troth/2002-70-19: For some very simple functions, gcc doesn't
++ generate a prologue and the sal.end ends up being the insn (2 bytes)
++ before func_end (the address of the next func). By adjusting
++ func_end, we can catch these functions and return the correct pc. */
++
++ if (sal.line != 0 && sal.end < (func_end-2))
+ return sal.end;
+ }
+
+