]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: fix line numbers in goc2c generated files
authorAnthony Martin <ality@pbrane.org>
Tue, 23 Apr 2013 23:02:50 +0000 (16:02 -0700)
committerAnthony Martin <ality@pbrane.org>
Tue, 23 Apr 2013 23:02:50 +0000 (16:02 -0700)
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

src/cmd/dist/goc2c.c

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