commit 1dc58d5e18fc688f2eb7cb6590e3241a31e511f9
parent 07b012b6529ddca3385618900328b77cfa73c5ba
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Mon, 5 Oct 2015 21:49:51 +0200
Emit #lines when it is needed in the cpp output
Diffstat:
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/cc1/cpp.c b/cc1/cpp.c
@@ -758,5 +758,6 @@ outcpp(void)
}
}
}
+ putchar('\n');
}
diff --git a/cc1/lex.c b/cc1/lex.c
@@ -215,6 +215,10 @@ repeat:
bool
moreinput(void)
{
+ static char file[FILENAME_MAX];
+ static unsigned nline;
+ char *s;
+
repeat:
if (!readline())
return 0;
@@ -226,8 +230,19 @@ repeat:
goto repeat;
}
- if (onlycpp)
+ if (onlycpp) {
putchar('\n');
+ if (strcmp(file, input->fname)) {
+ strcpy(file, input->fname);
+ s = "#line %u %s\n";
+ } else if (nline+1 != input->nline) {
+ s = "#line %u\n";
+ } else {
+ s = "";
+ }
+ nline = input->nline;
+ printf(s, nline, file);
+ }
input->begin = input->p;
return 1;
}