Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/link: stack depth check too shallow #33555

Closed
tsatke opened this issue Aug 8, 2019 · 8 comments
Closed

cmd/link: stack depth check too shallow #33555

tsatke opened this issue Aug 8, 2019 · 8 comments
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@tsatke
Copy link

tsatke commented Aug 8, 2019

What version of Go are you using (go version)?

$ go version
go version go1.12.7 darwin/amd64

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/user/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/user/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.12.7/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.12.7/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/44/txz_wqq568n4lbh6014ft754hlbqxb/T/go-build709036757=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

I am trying to run tests/compile a test executable. The codebase contains large generated files.

Checkout github.com/gojisvm/gojis from the branch es9-parser and run go test -c github.com/gojisvm/gojis/internal/parser.

Note: This issue does not appear when running go build ./..., only when compiling the test executable or running the tests directly with go test.
After creating .../internal/parser/main/main.go with the code

func main() {
	p := parser.New()
	err := p.ParseFile("testdata/small.js")
	_ = err
}

it will now also crash when running go build ./....

What did you expect to see?

I expected any kind of compiler output that tells me whether the tests do or do not compile.

What did you see instead?

# github.com/gojisvm/gojis/internal/parser.test
runtime.morestack: nosplit stack check too deep
runtime.morestack: nosplit stack overflow
        744     guaranteed after split check in github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PrimaryExpression
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PrimaryExpression uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectLiteral
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectLiteral uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinitionList
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinitionList uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinition
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinition uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).CoverInitializedName
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).CoverInitializedName uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Initializer_In
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Initializer_In uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AssignmentExpression_In
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AssignmentExpression_In uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ArrowFunction_In
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ArrowFunction_In uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ConciseBody_In
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ConciseBody_In uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionBody
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionBody uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionStatementList
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionStatementList uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementList_Return
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementList_Return uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementListItem_Return
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementListItem_Return uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Declaration
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Declaration uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).HoistableDeclaration
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).HoistableDeclaration uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).GeneratorDeclaration
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).GeneratorDeclaration uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FormalParameters_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FormalParameters_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionRestParameter_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionRestParameter_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestElement_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestElement_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingPattern_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingPattern_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectBindingPattern_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectBindingPattern_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bindingPropertyList_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bindingPropertyList_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingProperty_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingProperty_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyName_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyName_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ComputedPropertyName_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ComputedPropertyName_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AssignmentExpression_In_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AssignmentExpression_In_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ConditionalExpression_In_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ConditionalExpression_In_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).logicalORExpression_In_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).logicalORExpression_In_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bitwiseORExpression_In_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bitwiseORExpression_In_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).equalityExpression_In_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).equalityExpression_In_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).relationalExpression_In_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).relationalExpression_In_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).shiftExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).shiftExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).additiveExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).additiveExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).multiplicativeExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).multiplicativeExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ExponentationExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ExponentationExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).UpdateExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).UpdateExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).LeftHandSideExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).LeftHandSideExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).callExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).callExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).CoverCallExpressionAndAsyncArrowHead_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).CoverCallExpressionAndAsyncArrowHead_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).memberExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).memberExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PrimaryExpression_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PrimaryExpression_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectLiteral_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectLiteral_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinitionList_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinitionList_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinition_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinition_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).MethodDefinition_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).MethodDefinition_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncMethod_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncMethod_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).UniqueFormalParameters_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).UniqueFormalParameters_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FormalParameters_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FormalParameters_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionRestParameter_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionRestParameter_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestElement_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestElement_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingPattern_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingPattern_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectBindingPattern_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectBindingPattern_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bindingPropertyList_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bindingPropertyList_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingProperty_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingProperty_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyName_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyName_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ComputedPropertyName_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ComputedPropertyName_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AssignmentExpression_In_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AssignmentExpression_In_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ConditionalExpression_In_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ConditionalExpression_In_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).logicalORExpression_In_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).logicalORExpression_In_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bitwiseORExpression_In_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).bitwiseORExpression_In_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).equalityExpression_In_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).equalityExpression_In_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).relationalExpression_In_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).relationalExpression_In_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).shiftExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).shiftExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).additiveExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).additiveExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).multiplicativeExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).multiplicativeExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ExponentationExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ExponentationExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).UpdateExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).UpdateExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).LeftHandSideExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).LeftHandSideExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).callExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).callExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).CoverCallExpressionAndAsyncArrowHead_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).CoverCallExpressionAndAsyncArrowHead_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).memberExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).memberExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PrimaryExpression_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PrimaryExpression_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectLiteral_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectLiteral_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinitionList_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinitionList_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinition_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).PropertyDefinition_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).MethodDefinition_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).MethodDefinition_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncMethod_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncMethod_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncFunctionBody
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncFunctionBody uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionBody_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionBody_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionStatementList_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionStatementList_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementList_Await_Return
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementList_Await_Return uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementListItem_Await_Return
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementListItem_Await_Return uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Declaration_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Declaration_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).HoistableDeclaration_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).HoistableDeclaration_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).GeneratorDeclaration_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).GeneratorDeclaration_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).GeneratorBody
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).GeneratorBody uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionBody_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionBody_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionStatementList_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionStatementList_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementList_Yield_Return
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementList_Yield_Return uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementListItem_Yield_Return
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).StatementListItem_Yield_Return uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Declaration_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).Declaration_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).HoistableDeclaration_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).HoistableDeclaration_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncGeneratorDeclaration_Yield
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).AsyncGeneratorDeclaration_Yield uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FormalParameters_Yield_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FormalParameters_Yield_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionRestParameter_Yield_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).FunctionRestParameter_Yield_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestElement_Yield_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestElement_Yield_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingPattern_Yield_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingPattern_Yield_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectBindingPattern_Yield_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).ObjectBindingPattern_Yield_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestProperty_Yield_Await
        752     after github.com/gojisvm/gojis/internal/parser.(*ECMAScriptParser).BindingRestProperty_Yield_Await uses -8
        744     on entry to github.com/gojisvm/gojis/internal/parser.NewBindingRestProperty_Yield_AwaitContext
        832     after github.com/gojisvm/gojis/internal/parser.NewBindingRestProperty_Yield_AwaitContext uses -88
        824     on entry to runtime.morestack_noctxt (nosplit)
        816     on entry to runtime.morestack (nosplit)
        0       after runtime.morestack (nosplit) uses 816

Additional

I had a conversation on the gophers slack about this issue, maybe the conversation there helps(?)
https://gophers.slack.com/archives/C029RQSEE/p1565298480176500 and downward

@tsatke tsatke changed the title can't compile large files can't run tests or compile test executable with large files Aug 8, 2019
@tsatke
Copy link
Author

tsatke commented Aug 8, 2019

Also fails against tip:
https://github.com/gojisvm/gojis/runs/189101515

@ianlancetaylor ianlancetaylor changed the title can't run tests or compile test executable with large files cmd/link: stack depth check too shallow Aug 8, 2019
@ianlancetaylor
Copy link
Contributor

The problem here is that nosplit stack depth check is looking through stacks of non-recursive function calls. There is a limit of 100 calls, on the assumption that there is no longer call sequence. In this example, the call sequence is longer. So the linker complains, although in fact everything is fine. The fix is trivial: increase the limit. This particular example works if we increase the limit to 147.

Although this is very late in the 1.13 cycle, I think we would consider backporting a fix for this. So I think it is fair game.

@ianlancetaylor
Copy link
Contributor

@gopherbot Please open backport issues.

@gopherbot
Copy link

Backport issue(s) opened: #33556 (for 1.11), #33557 (for 1.12).

Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases.

@ianlancetaylor ianlancetaylor added the NeedsFix The path to resolution is known, but the work has not been done. label Aug 8, 2019
@ianlancetaylor ianlancetaylor added this to the Go1.13 milestone Aug 8, 2019
@ianlancetaylor
Copy link
Contributor

(This is not a release blocker, though, as it is not a new problem.)

@gopherbot
Copy link

Change https://golang.org/cl/189697 mentions this issue: cmd/link: increase the function call limit in stkcheck

@gopherbot
Copy link

Change https://golang.org/cl/189717 mentions this issue: [release-branch.go1.12] cmd/link: increase the function call limit in stkcheck

@gopherbot
Copy link

Change https://golang.org/cl/189737 mentions this issue: [release-branch.go1.11] cmd/link: increase the function call limit in stkcheck

gopherbot pushed a commit that referenced this issue Aug 9, 2019
… stkcheck

There is real (albeit generated) code that exceeds the limit.

Updates #33555
Fixes #33557

Change-Id: I668e85825d3d2a471970e869abe63f3492213cc1
Reviewed-on: https://go-review.googlesource.com/c/go/+/189697
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
(cherry picked from commit 951143c)
Reviewed-on: https://go-review.googlesource.com/c/go/+/189717
gopherbot pushed a commit that referenced this issue Aug 9, 2019
… stkcheck

There is real (albeit generated) code that exceeds the limit.

Updates #33555
Fixes #33556

Change-Id: I668e85825d3d2a471970e869abe63f3492213cc1
Reviewed-on: https://go-review.googlesource.com/c/go/+/189697
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
(cherry picked from commit 951143c)
Reviewed-on: https://go-review.googlesource.com/c/go/+/189737
@golang golang locked and limited conversation to collaborators Aug 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

3 participants