summaryrefslogtreecommitdiff
path: root/usr.bin/pcc/ccom/stabs.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/pcc/ccom/stabs.c')
-rw-r--r--usr.bin/pcc/ccom/stabs.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr.bin/pcc/ccom/stabs.c b/usr.bin/pcc/ccom/stabs.c
index 78765545eff..e1e05518a31 100644
--- a/usr.bin/pcc/ccom/stabs.c
+++ b/usr.bin/pcc/ccom/stabs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: stabs.c,v 1.7 2008/04/11 20:45:52 stefan Exp $ */
+/* $OpenBSD: stabs.c,v 1.8 2008/08/17 18:40:13 ragge Exp $ */
/*
* Copyright (c) 2004 Anders Magnusson (ragge@ludd.luth.se).
@@ -308,6 +308,7 @@ printtype(struct symtab *s, char *ostr, int len)
void
stabs_newsym(struct symtab *s)
{
+ extern int fun_inline;
char *sname;
char ostr[MAXPSTR];
int suesize;
@@ -358,7 +359,10 @@ stabs_newsym(struct symtab *s)
cprint(savestabs, "\t.stabs \"%s:r%s\",%d,0,%d,%d\n", sname, ostr,
N_RSYM, 1, s->soffset);
break;
-
+ case SNULL:
+ if (fun_inline)
+ break;
+ /* FALLTHROUGH */
default:
cerror("fix stab_newsym; class %d", s->sclass);
}
@@ -389,6 +393,9 @@ cprint(int p2, char *fmt, ...)
va_list ap;
char *str;
+ if (isinlining)
+ return; /* XXX do not save any inline functions currently */
+
va_start(ap, fmt);
if (p2) {
str = tmpvsprintf(fmt, ap);