1
0
mirror of https://github.com/golang/go synced 2024-11-20 01:54:41 -07:00

cmd/dist: fix line numbers in goc2c generated files

We have to reset the global lineno variable before
processing each file otherwise line numbers will be
offset by the number of lines in the previous file.

The following examples are from the beginning of the
ztime_linux_amd64.c file which is generated from
time.goc in the runtime package.

Before:
    #line 2483 "/home/apm/src/go/src/pkg/runtime/time.goc"
    static Timers timers;
    static void addtimer ( Timer* ) ;
    void
    time·Sleep(int64 ns)
    {
    #line 2492 "/home/apm/src/go/src/pkg/runtime/time.goc"

After:
    #line 16 "/home/apm/src/go/src/pkg/runtime/time.goc"
    static Timers timers;
    static void addtimer ( Timer* ) ;
    void
    time·Sleep(int64 ns)
    {
    #line 25 "/home/apm/src/go/src/pkg/runtime/time.goc"

R=golang-dev, minux.ma, iant, r, adg
CC=golang-dev
https://golang.org/cl/8653045
This commit is contained in:
Anthony Martin 2013-04-23 16:02:50 -07:00
parent 7bec1a6033
commit d33f09bcc0

View File

@ -66,7 +66,7 @@ static int gcc;
/* File and line number */ /* File and line number */
static const char *file; static const char *file;
static unsigned int lineno = 1; static unsigned int lineno;
/* List of names and types. */ /* List of names and types. */
struct params { struct params {
@ -754,6 +754,7 @@ goc2c(char *goc, char *c)
input = bstr(&in); input = bstr(&in);
output = &out; output = &out;
lineno = 1;
process_file(); process_file();
writefile(&out, c, 0); writefile(&out, c, 0);