Skip to content

Commit

Permalink
llgoi: Fix importing source packages together with dependent binary p…
Browse files Browse the repository at this point in the history
…ackages.

Note that this means that llgoi does not support the case
where a package's pkgpath is different from its import path,
but I don't think this should actually happen with llgoi.

Differential Revision: http://reviews.llvm.org/D8403

llvm-svn: 232612
  • Loading branch information
pcc committed Mar 18, 2015
1 parent 28aae9c commit 6092d2c
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 1 deletion.
3 changes: 3 additions & 0 deletions llgo/cmd/llgoi/llgoi.go
Expand Up @@ -102,6 +102,9 @@ func (in *interp) makeCompilerOptions() error {
if pkg, ok := in.inputPkgmap[pkgpath]; ok {
return pkg, nil
}
if pkg, ok := pkgmap[pkgpath]; ok && pkg.Complete() {
return pkg, nil
}
return origImporter(pkgmap, pkgpath)
}
return nil
Expand Down
5 changes: 4 additions & 1 deletion llgo/test/llgoi/Inputs/src/bar/answer.go
@@ -1,5 +1,8 @@
package bar

import "strconv"

func Answer() int {
return 42
n, _ := strconv.Atoi("42")
return n
}
6 changes: 6 additions & 0 deletions llgo/test/llgoi/import-source.test
Expand Up @@ -7,8 +7,14 @@ import "foo"
// CHECK: # bar
// CHECK: # foo

// Test that importing binary after source works.
import "strconv"

foo.Answer()
// CHECK: #0 int = 42

strconv.FormatBool(true)
// CHECK: #0 string = true

import "foo_cgo"
// CHECK: foo_cgo: cannot load cgo package
14 changes: 14 additions & 0 deletions llgo/test/llgoi/import-source2.test
@@ -0,0 +1,14 @@
// RUN: env GOPATH=%S/Inputs llgoi < %s | FileCheck %s

// Test that importing binary before source works.
import "strconv"

import "foo"
// CHECK: # bar
// CHECK: # foo

foo.Answer()
// CHECK: #0 int = 42

strconv.FormatBool(true)
// CHECK: #0 string = true

0 comments on commit 6092d2c

Please sign in to comment.