Commit d33f09bc authored by Anthony Martin's avatar Anthony Martin

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
parent 7bec1a60
...@@ -66,7 +66,7 @@ static int gcc; ...@@ -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) ...@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment