dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.91k stars 4.63k forks source link

[loongarch64] Crash inside FlowAnalysis #78858

Open kant2002 opened 1 year ago

kant2002 commented 1 year ago

Version Used:

/home/loongson/.nuget/packages/microsoft.net.compilers.toolset/4.5.0-1.22553.5/tasks/net6.0/Microsoft.CSharp.Core.targets(80,5): error :

Steps to Reproduce:

  1. git clone dotnet/runtime
  2. ./build.sh clr+libs

Not yet sure if this repro on non-loongson architecture.

Diagnostic Id:

If this is a report about a bug in an analyzer, please include the diagnostic if possible (e.g. "IDE0030").

Expected Behavior: probably do not crash :)

Actual Behavior:

Process terminated. System.InvalidOperationException: This program location is thought to be unreachable. File='/_/src/Compilers/CSharp/Portable/FlowAnalysis/NullableWalker_Patterns.cs' Line=387 [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.LearnFromDecisionDag(SyntaxNode node, BoundDecisionDag decisionDag, BoundExpression expression, TypeWithState expressionType, Nullable`1 stateWhenNotNullOpt) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitSwitchStatementDispatch(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitSwitchStatement(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatementsWithLocalFunctions(BoundBlock block) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitBlock(BoundBlock node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitWithStackGuard(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitAlways(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node, Boolean expressionIsRead) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitMethodBodies(BoundBlock blockBody, BoundBlock expressionBody) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean& badRegion) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Analyze(Boolean& badRegion, Optional`1 initialState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(NullableWalker walker, Symbol symbol, DiagnosticBag diagnostics, Optional`1 initialState, Builder snapshotBuilderOpt, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, Conversions conversions, DiagnosticBag diagnostics, Boolean useConstructorExitWarnings, Boolean useDelegateInvokeParameterTypes, Boolean useDelegateInvokeReturnType, MethodSymbol delegateInvokeMethodOpt, VariableState initialState, MethodSymbol baseOrThisInitializer, Builder analyzedNullabilityMapOpt, Builder snapshotBuilderOpt, ArrayBuilder`1 returnTypesOpt, Boolean getFinalNullableState, VariableState& finalNullableState, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, SnapshotManager& snapshotManager, ImmutableDictionary`2& remappedSymbols) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Environment.FailFast(System.String, System.Exception) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.FailFast+<>c.<.cctor>b__5_0(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.ErrorReporting.FatalError.ReportAndPropagate(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.ErrorReporting.FatalError.ReportAndPropagateUnlessCanceled(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BoundDecisionDag, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState, System.Nullable`1<PossiblyConditionalState>) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitSwitchStatementDispatch(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatementsWithLocalFunctions(Microsoft.CodeAnalysis.CSharp.BoundBlock) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Visit(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitMethodBodies(Microsoft.CodeAnalysis.CSharp.BoundBlock, Microsoft.CodeAnalysis.CSharp.BoundBlock) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitNonConstructorMethodBody(Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean ByRef) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Analyze(Boolean ByRef, Microsoft.CodeAnalysis.Optional`1<LocalState>) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(Microsoft.CodeAnalysis.CSharp.NullableWalker, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.Optional`1<LocalState>, Builder, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.CSharp.Binder, Microsoft.CodeAnalysis.CSharp.Conversions, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, Boolean, Boolean, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, VariableState, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Builder<Microsoft.CodeAnalysis.CSharp.BoundExpression,System.ValueTuple`2<Microsoft.CodeAnalysis.NullabilityInfo,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>>, Builder, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1<System.ValueTuple`2<Microsoft.CodeAnalysis.CSharp.BoundReturnStatement,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>>, Boolean, VariableState ByRef, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.CSharp.Binder, VariableState, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.CSharp.Binder, VariableState, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, SnapshotManager ByRef, System.Collections.Immutable.ImmutableDictionary`2<Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol> ByRef) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean, Microsoft.CodeAnalysis.CSharp.BoundNode, Boolean, Microsoft.CodeAnalysis.CSharp.ImportChain ByRef, Boolean ByRef, Boolean ByRef, InitialState ByRef) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, ProcessedFieldInitializers ByRef, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.<WithCurrentUICulture>b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Tasks.Task.InnerInvoke() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Tasks.Task+<>c.<.cctor>b__273_0(System.Object) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Tasks.Task.ExecuteEntryUnsafe(System.Threading.Thread) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Tasks.Task.ExecuteFromThreadPool(System.Threading.Thread) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.ThreadPoolWorkQueue.Dispatch() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Thread+StartHelper.RunWorker() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Thread+StartHelper.Run() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at System.Threading.Thread.StartCallback() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
System.InvalidOperationException: This program location is thought to be unreachable. File='/_/src/Compilers/CSharp/Portable/FlowAnalysis/NullableWalker_Patterns.cs' Line=387 [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.LearnFromDecisionDag(SyntaxNode node, BoundDecisionDag decisionDag, BoundExpression expression, TypeWithState expressionType, Nullable`1 stateWhenNotNullOpt) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitSwitchStatementDispatch(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitSwitchStatement(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatementsWithLocalFunctions(BoundBlock block) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitBlock(BoundBlock node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitWithStackGuard(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitAlways(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node, Boolean expressionIsRead) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitMethodBodies(BoundBlock blockBody, BoundBlock expressionBody) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean& badRegion) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Analyze(Boolean& badRegion, Optional`1 initialState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(NullableWalker walker, Symbol symbol, DiagnosticBag diagnostics, Optional`1 initialState, Builder snapshotBuilderOpt, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, Conversions conversions, DiagnosticBag diagnostics, Boolean useConstructorExitWarnings, Boolean useDelegateInvokeParameterTypes, Boolean useDelegateInvokeReturnType, MethodSymbol delegateInvokeMethodOpt, VariableState initialState, MethodSymbol baseOrThisInitializer, Builder analyzedNullabilityMapOpt, Builder snapshotBuilderOpt, ArrayBuilder`1 returnTypesOpt, Boolean getFinalNullableState, VariableState& finalNullableState, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, SnapshotManager& snapshotManager, ImmutableDictionary`2& remappedSymbols) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj]
CyrusNajmabadi commented 1 year ago

Can you specify the git sha for the runtime you have cloned?

kant2002 commented 1 year ago

Most current one - https://github.com/dotnet/runtime/commit/78b3f9ddfab76eb99cd02c2744d3c2d055ed7270

kant2002 commented 1 year ago

That's minimal repro which I come up with for now


/home/loongson/runtime/.dotnet/dotnet exec "/home/loongson/.nuget/packages/microsoft.net.compilers.toolset/4.5.0-1.22564.5/tasks/net6.0/bincore/csc.dll" 
/nullable:enable
/reference:/home/loongson/.nuget/packages/microsoft.codeanalysis.csharp/4.4.0-2.22423.18/lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll
/reference:/home/loongson/.nuget/packages/microsoft.codeanalysis.common/4.4.0-2.22423.18/lib/netstandard2.0/Microsoft.CodeAnalysis.dll
/reference:/home/loongson/runtime/artifacts/bin/Microsoft.Interop.SourceGeneration/Debug/netstandard2.0/Microsoft.Interop.SourceGeneration.dll
/reference:/home/loongson/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/netstandard.dll
/out:/home/loongson/runtime/artifacts/obj/JSImportGenerator/Debug/netstandard2.0/Microsoft.Interop.JavaScript.JSImportGenerator.dll
/target:library
/langversion:preview
AttributeData.cs
Constants.cs
FallbackJSMarshallingInfoProvider.cs
JSGeneratorFactory.cs
JSGeneratorOptions.cs
JSManagedTypeInfo.cs
JSMarshallingInfo.cs
JSStubCodeContext.cs
JSTypeFlags.cs
KnownManagedType.cs
LanguageSupport.cs
Marshaling/BaseJSGenerator.cs
Marshaling/IJSMarshallingGenerator.cs
Marshaling/PrimitiveJSGenerator.cs
/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/src/System/Runtime/InteropServices/JavaScript/MarshalerType.cs
kant2002 commented 1 year ago

After I replace content of microsoft.net.compilers.toolset/4.5.0-1.22564.5 with custom built Microsoft.CodeAnalysis.CSharp.dll and Microsoft.CodeAnalysis.dll I receive this happy stack trace.

Process terminated. Assertion failed.
Did not find Microsoft.CodeAnalysis.CSharp.BoundCall `fullTypeName.StartsWith(Constants.TaskGlobal, StringComparison.Ordinal)` in the map.
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.VerifyExpression(BoundExpression expression, Boolean overrideSkippedExpression) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 61
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.VisitExpressionWithoutStackGuard(BoundExpression node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 68
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32& recursionDepth, BoundExpression node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 212
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 83
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitSwitchLabel(BoundSwitchLabel node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 9859
   at Microsoft.CodeAnalysis.CSharp.BoundSwitchLabel.Accept(BoundTreeVisitor visitor) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 5443
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 151
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 85
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray`1 list) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeWalker.cs:line 22
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitSwitchSection(BoundSwitchSection node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 9852
   at Microsoft.CodeAnalysis.CSharp.BoundSwitchSection.Accept(BoundTreeVisitor visitor) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 5410
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 151
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 85
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray`1 list) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeWalker.cs:line 22
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitSwitchStatement(BoundSwitchStatement node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 9602
   at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(BoundTreeVisitor visitor) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 3537
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 151
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 85
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray`1 list) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeWalker.cs:line 22
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 9538
   at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 3062
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 151
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 85
   at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 10213
   at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(BoundTreeVisitor visitor) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 8241
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 151
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Visit(BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 85
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.DebugVerifier.Verify(ImmutableDictionary`2 analyzedNullabilityMap, SnapshotManager snapshotManagerOpt, BoundNode node) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.DebugVerifier.cs:line 39
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, Boolean requiresAnalysis) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs:line 1458
   at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, SnapshotManager& snapshotManager, ImmutableDictionary`2& remappedSymbols) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs:line 1411
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs:line 1809
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs:line 1044
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs:line 530
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0() in C:\d\github\dotnet\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs:line 424
   at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass5_0.<WithCurrentUICulture>b__0() in C:\d\github\dotnet\roslyn\src\Compilers\Core\Portable\InternalUtilities\UICultureUtilities.cs:line 139

Location of code which seems to be trigger that verification is https://github.com/dotnet/runtime/blob/4832236b4820ca83bbc9ce96003c2029b85c6ce2/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSManagedTypeInfo.cs#L120-L125

jkotas commented 1 year ago

Not yet sure if this repro on non-loongson architecture.

Right, the first thing to check is whether it repros on x64 or arm64. If you are only able to reproduce it on loongson, it is most likely a bug in the loongson port.

jkotas commented 1 year ago

git clone dotnet/runtime ./build.sh clr+libs

This runs thousands of times each day in dotnet/runtime CI. It means that this repros on loongson only

ghost commented 1 year ago

Tagging subscribers to this area: @dotnet/interop-contrib See info in area-owners.md if you want to be subscribed.

Issue Details
**Version Used**: /home/loongson/.nuget/packages/microsoft.net.compilers.toolset/4.5.0-1.22553.5/tasks/net6.0/Microsoft.CSharp.Core.targets(80,5): error : **Steps to Reproduce**: 1. git clone dotnet/runtime 2. ./build.sh clr+libs Not yet sure if this repro on non-loongson architecture. **Diagnostic Id**: If this is a report about a bug in an analyzer, please include the diagnostic if possible (e.g. `"IDE0030"`). **Expected Behavior**: probably do not crash :) **Actual Behavior**: ``` Process terminated. System.InvalidOperationException: This program location is thought to be unreachable. File='/_/src/Compilers/CSharp/Portable/FlowAnalysis/NullableWalker_Patterns.cs' Line=387 [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.LearnFromDecisionDag(SyntaxNode node, BoundDecisionDag decisionDag, BoundExpression expression, TypeWithState expressionType, Nullable`1 stateWhenNotNullOpt) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitSwitchStatementDispatch(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitSwitchStatement(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatementsWithLocalFunctions(BoundBlock block) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitBlock(BoundBlock node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitWithStackGuard(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitAlways(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node, Boolean expressionIsRead) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitMethodBodies(BoundBlock blockBody, BoundBlock expressionBody) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean& badRegion) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Analyze(Boolean& badRegion, Optional`1 initialState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(NullableWalker walker, Symbol symbol, DiagnosticBag diagnostics, Optional`1 initialState, Builder snapshotBuilderOpt, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, Conversions conversions, DiagnosticBag diagnostics, Boolean useConstructorExitWarnings, Boolean useDelegateInvokeParameterTypes, Boolean useDelegateInvokeReturnType, MethodSymbol delegateInvokeMethodOpt, VariableState initialState, MethodSymbol baseOrThisInitializer, Builder analyzedNullabilityMapOpt, Builder snapshotBuilderOpt, ArrayBuilder`1 returnTypesOpt, Boolean getFinalNullableState, VariableState& finalNullableState, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, SnapshotManager& snapshotManager, ImmutableDictionary`2& remappedSymbols) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Environment.FailFast(System.String, System.Exception) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.FailFast+<>c.<.cctor>b__5_0(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.ErrorReporting.FatalError.ReportAndPropagate(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.ErrorReporting.FatalError.ReportAndPropagateUnlessCanceled(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass25_0.b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BoundDecisionDag, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState, System.Nullable`1) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitSwitchStatementDispatch(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatementsWithLocalFunctions(Microsoft.CodeAnalysis.CSharp.BoundBlock) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Visit(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitMethodBodies(Microsoft.CodeAnalysis.CSharp.BoundBlock, Microsoft.CodeAnalysis.CSharp.BoundBlock) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitNonConstructorMethodBody(Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean ByRef) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState, Microsoft.CodeAnalysis.CSharp, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Analyze(Boolean ByRef, Microsoft.CodeAnalysis.Optional`1) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(Microsoft.CodeAnalysis.CSharp.NullableWalker, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.Optional`1, Builder, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.CSharp.Binder, Microsoft.CodeAnalysis.CSharp.Conversions, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, Boolean, Boolean, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, VariableState, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Builder>, Builder, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1>, Boolean, VariableState ByRef, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.CSharp.Binder, VariableState, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, Boolean) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.CSharp.Binder, VariableState, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, SnapshotManager ByRef, System.Collections.Immutable.ImmutableDictionary`2 ByRef) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean, Microsoft.CodeAnalysis.CSharp.BoundNode, Boolean, Microsoft.CodeAnalysis.CSharp.ImportChain ByRef, Boolean ByRef, Boolean ByRef, InitialState ByRef) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, ProcessedFieldInitializers ByRef, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass25_0.b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Tasks.Task.InnerInvoke() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Tasks.Task+<>c.<.cctor>b__273_0(System.Object) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Tasks.Task.ExecuteEntryUnsafe(System.Threading.Thread) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Tasks.Task.ExecuteFromThreadPool(System.Threading.Thread) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.ThreadPoolWorkQueue.Dispatch() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Thread+StartHelper.RunWorker() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Thread+StartHelper.Run() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at System.Threading.Thread.StartCallback() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] System.InvalidOperationException: This program location is thought to be unreachable. File='/_/src/Compilers/CSharp/Portable/FlowAnalysis/NullableWalker_Patterns.cs' Line=387 [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.LearnFromDecisionDag(SyntaxNode node, BoundDecisionDag decisionDag, BoundExpression expression, TypeWithState expressionType, Nullable`1 stateWhenNotNullOpt) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitSwitchStatementDispatch(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitSwitchStatement(BoundSwitchStatement node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatementsWithLocalFunctions(BoundBlock block) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitBlock(BoundBlock node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitWithStackGuard(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitAlways(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node, Boolean expressionIsRead) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Visit(BoundNode node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitMethodBodies(BoundBlock blockBody, BoundBlock expressionBody) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(BoundTreeVisitor visitor) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean& badRegion) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2.Analyze(Boolean& badRegion, Optional`1 initialState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(NullableWalker walker, Symbol symbol, DiagnosticBag diagnostics, Optional`1 initialState, Builder snapshotBuilderOpt, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, Conversions conversions, DiagnosticBag diagnostics, Boolean useConstructorExitWarnings, Boolean useDelegateInvokeParameterTypes, Boolean useDelegateInvokeReturnType, MethodSymbol delegateInvokeMethodOpt, VariableState initialState, MethodSymbol baseOrThisInitializer, Builder analyzedNullabilityMapOpt, Builder snapshotBuilderOpt, ArrayBuilder`1 returnTypesOpt, Boolean getFinalNullableState, VariableState& finalNullableState, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeWithSemanticInfo(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, Boolean requiresAnalysis) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.NullableWalker.AnalyzeAndRewrite(CSharpCompilation compilation, Symbol symbol, BoundNode node, Binder binder, VariableState initialState, DiagnosticBag diagnostics, Boolean createSnapshots, SnapshotManager& snapshotManager, ImmutableDictionary`2& remappedSymbols) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.b__0() [/home/loongson/runtime/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.csproj] ```
Author: kant2002
Assignees: -
Labels: `area-System.Runtime.InteropServices`, `untriaged`
Milestone: -
kant2002 commented 1 year ago

I did not discount that possibility by any means, but I’m I denial phase yet. I build whole BCL on loongarch but issue appears only in very specific place independently if I execute via MSBUild or if I execute csc manually. And location in Roslyn where crash happens seems pretty regular compiler stuff. Tree traversal and nothing very specific.

jkotas commented 1 year ago

What you have described is a very common manifestation of GC holes.