www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 17489] New: ICE in ddmd/argtypes.d

https://issues.dlang.org/show_bug.cgi?id=17489

          Issue ID: 17489
           Summary: ICE in ddmd/argtypes.d
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: greensunny12 gmail.com

0.7.31-rc.2 triggers an ICE in dmd when compiled as follows (i.e. as on
Jenkins)

 dub test --combined --compiler=$HOME/dlang/dmd/generated/linux/debug/64/dmd
--config=libevent
/home/seb/dlang/dmd/generated/linux/debug/64/dmd -c -of.dub/build/vibe-d-test-libevent-unittest-linux.posix-x86_64-dmd_2075-719818DEDFB0B36C9A066E0B0EEC8BB5/vibe-d-test-libevent.o -debug -g -unittest -w -version=VibeCustomMain -version=VibeLibeventDriver -version=Have_vibe_d -version=Have_libevent -version=Have_openssl -version=Have_vibe_d_utils -version=Have_vibe_d_data -version=Have_vibe_d_core -version=Have_diet_ng -version=Have_vibe_d_http -version=Have_vibe_d_diet -version=Have_vibe_d_mail -version=Have_vibe_d_mongodb -version=Have_vibe_d_redis -version=Have_vibe_d_web -Isource/ -I../../../.dub/packages/libevent-2.0.2_2.0.16/libevent -I../../../.dub/packages/openssl-1.1.5_1.0.1g/openssl -I../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/ ../../../../../tmp/dub_test_root-fe45c364-3805-45d7-ab7a-3f1bd8a878b7.d source/vibe/d.d source/vibe/vibe.d source/vibe/core/args.d source/vibe/core/concurrency.d source/vibe/core/connectionpool.d source/vibe/core/core.d source/vibe/core/driver.d source/vibe/core/drivers/libasync.d source/vibe/core/drivers/libevent2.d source/vibe/core/drivers/libevent2_tcp.d source/vibe/core/drivers/native.d source/vibe/core/drivers/threadedfile.d source/vibe/core/drivers/timerqueue.d source/vibe/core/drivers/utils.d source/vibe/core/drivers/win32.d source/vibe/core/drivers/winrt.d source/vibe/core/file.d source/vibe/core/log.d source/vibe/core/net.d source/vibe/core/stream.d source/vibe/core/sync.d source/vibe/core/task.d source/vibe/crypto/cryptorand.d source/vibe/crypto/passwordhash.d source/vibe/inet/message.d source/vibe/inet/mimetypes.d source/vibe/inet/path.d source/vibe/inet/url.d source/vibe/inet/urltransfer.d source/vibe/inet/webform.d source/vibe/stream/base64.d source/vibe/stream/botan.d source/vibe/stream/counting.d source/vibe/stream/memory.d source/vibe/stream/multicast.d source/vibe/stream/openssl.d source/vibe/stream/operations.d source/vibe/stream/stdio.d source/vibe/stream/taskpipe.d source/vibe/stream/tls.d source/vibe/stream/wrapper.d source/vibe/stream/zlib.d source/vibe/textfilter/html.d source/vibe/textfilter/markdown.d source/vibe/textfilter/urlencode.d source/vibe/data/bson.d source/vibe/data/json.d source/vibe/data/serialization.d source/vibe/internal/meta/all.d source/vibe/internal/meta/codegen.d source/vibe/internal/meta/funcattr.d source/vibe/internal/meta/traits.d source/vibe/internal/meta/typetuple.d source/vibe/internal/meta/uda.d source/vibe/internal/rangeutil.d source/vibe/internal/win32.d source/vibe/utils/array.d source/vibe/utils/dictionarylist.d source/vibe/utils/hashmap.d source/vibe/utils/memory.d source/vibe/utils/string.d source/vibe/utils/validation.d source/vibe/templ/diet.d source/vibe/templ/parsertools.d source/vibe/templ/utils.d source/vibe/http/auth/basic_auth.d source/vibe/http/auth/digest_auth.d source/vibe/http/client.d source/vibe/http/common.d source/vibe/http/dist.d source/vibe/http/fileserver.d source/vibe/http/form.d source/vibe/http/log.d source/vibe/http/proxy.d source/vibe/http/router.d source/vibe/http/server.d source/vibe/http/session.d source/vibe/http/status.d source/vibe/http/websockets.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/defs.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/dom.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/html.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/input.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/internal/html.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/internal/string.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/parser.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/traits.d source/vibe/mail/smtp.d source/vibe/db/mongo/client.d source/vibe/db/mongo/collection.d source/vibe/db/mongo/connection.d source/vibe/db/mongo/cursor.d source/vibe/db/mongo/database.d source/vibe/db/mongo/flags.d source/vibe/db/mongo/mongo.d source/vibe/db/mongo/settings.d source/vibe/db/redis/idioms.d source/vibe/db/redis/redis.d source/vibe/db/redis/sessionstore.d source/vibe/db/redis/types.d source/vibe/web/auth.d source/vibe/web/common.d source/vibe/web/i18n.d source/vibe/web/internal/rest/common.d source/vibe/web/internal/rest/jsclient.d source/vibe/web/rest.d source/vibe/web/validation.d source/vibe/web/web.d source/vibe/appmain.d -vcolumns source/vibe/http/server.d(286,33): Deprecation: alias diet.traits.FilterCallback is deprecated - Use SafeFilterCallback instead. /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1046,60): Error: parameter index must be in range 0..3 not 3LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): Error: template instance std.traits.ParameterStorageClassTuple!(void function(FreeListRef!(shared(int), true), int delegate(int, int) pure nothrow nogc safe, int, int) nothrow nogc system).StorageClass!3LU error instantiating /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): instantiated from here: StorageClass!2LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): instantiated from here: StorageClass!1LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1052,44): instantiated from here: StorageClass!0LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/typecons.d(4273,22): ... (4 instantiations, -v to show) ... source/vibe/core/concurrency.d(1146,34): instantiated from here: toDelegate!(void function(FreeListRef!(shared(int), true), int delegate(int, int) pure nothrow nogc safe, int, int) nothrow nogc system) source/vibe/core/concurrency.d(1187,15): instantiated from here: async!(int delegate(int, int) pure nothrow nogc safe, int, int) /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/functional.d(1224,13): Error: CTFE failed because of previous errors in generateFunction core.exception.AssertError ddmd/argtypes.d(201): Assertion failure ---------------- ??:? _d_assertp [0x70ff88] ??:? _ZN10toArgTypes10ToArgTypes12argtypemergeEP4TypeS2_j [0x4ff0e0] ??:? _ZN10toArgTypes10ToArgTypes5visitEP10TypeStruct [0x4ff7e2] ??:? _ZN10TypeStruct6acceptEP7Visitor [0x5f7c1c] ??:? _Z10toArgTypesP4Type [0x4fecc9] ??:? _ZN17StructDeclaration12finalizeSizeEv [0x5704bf] ??:? _ZN20AggregateDeclaration13determineSizeE3Loc [0x4fd1f9] ??:? _ZN20AggregateDeclaration9semantic2EP5Scope [0x4fcb95] ??:? _ZN17AttribDeclaration9semantic2EP5Scope [0x501d93] ??:? _ZN14DeclarationExp8semanticEP5Scope [0x59d3d4] ??:? _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x62870b] ??:? _ZN12ExpStatement6acceptEP7Visitor [0x61dbc9] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x6289a1] ??:? _ZN17CompoundStatement6acceptEP7Visitor [0x61e319] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN15FuncDeclaration9semantic3EP5Scope [0x5bc8d3] ??:? _ZN16TemplateInstance9semantic3EP5Scope [0x583260] ??:? _ZN16TemplateInstance12trySemantic3EP5Scope [0x586b57] ??:? _ZN16TemplateInstance8semanticEP5ScopeP5ArrayIP10ExpressionE [0x582bbc] ??:? void ddmd.dtemplate.functionResolve(ddmd.declaration.Match*, ddmd.dsymbol.Dsymbol, ddmd.globals.Loc, ddmd.dscope.Scope*, ddmd.root.array.Array!(ddmd.root.rootobject.RootObject).Array*, ddmd.mtype.Type, ddmd.root.array.Array!(ddmd.expression.Expression).Array*) [0x579d7d] ??:? _Z15resolveFuncCall3LocP5ScopeP7DsymbolP5ArrayIP10RootObjectEP4TypePS4_IP10ExpressionEi [0x5c36d8] ??:? _ZN7CallExp8semanticEP5Scope [0x5a6c12] ??:? _Z23arrayExpressionSemanticP5ArrayIP10ExpressionEP5Scopeb [0x58d99d] ??:? _ZN7CallExp8semanticEP5Scope [0x5a4f3c] ??:? _ZN9AssignExp8semanticEP5Scope [0x5ae9b1] ??:? _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x62870b] ??:? _ZN12ExpStatement6acceptEP7Visitor [0x61dbc9] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x6289a1] ??:? _ZN17CompoundStatement6acceptEP7Visitor [0x61e319] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN24StatementSemanticVisitor5visitEP19TryFinallyStatement [0x63547e] ??:? _ZN19TryFinallyStatement6acceptEP7Visitor [0x620268] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x629134] ??:? _ZN17CompoundStatement6acceptEP7Visitor [0x61e319] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN15FuncDeclaration9semantic3EP5Scope [0x5bc8d3] ??:? _ZN16TemplateInstance9semantic3EP5Scope [0x583260] ??:? _ZN16TemplateInstance12trySemantic3EP5Scope [0x586b57] ??:? _ZN16TemplateInstance8semanticEP5ScopeP5ArrayIP10ExpressionE [0x5829aa] ??:? void ddmd.dtemplate.functionResolve(ddmd.declaration.Match*, ddmd.dsymbol.Dsymbol, ddmd.globals.Loc, ddmd.dscope.Scope*, ddmd.root.array.Array!(ddmd.root.rootobject.RootObject).Array*, ddmd.mtype.Type, ddmd.root.array.Array!(ddmd.expression.Expression).Array*) [0x579d7d] ??:? _Z15resolveFuncCall3LocP5ScopeP7DsymbolP5ArrayIP10RootObjectEP4TypePS4_IP10ExpressionEi [0x5c36d8] ??:? _ZN7CallExp8semanticEP5Scope [0x5a6c12] ??:? _ZN6UnaExp11unaSemanticEP5Scope [0x59e992] ??:? _ZN8DotIdExp9semanticXEP5Scope [0x5a09fe] ??:? _Z11resolveUFCSP5ScopeP7CallExp [0x58d232] ??:? _ZN7CallExp8semanticEP5Scope [0x5a4568] ??:? _ZN6BinExp11binSemanticEP5Scope [0x59ec32] ??:? _ZN6BinExp15binSemanticPropEP5Scope [0x59ecb0] ??:? _ZN8EqualExp8semanticEP5Scope [0x5b62f2] ??:? _ZN6UnaExp11unaSemanticEP5Scope [0x59e992] ??:? _ZN9AssertExp8semanticEP5Scope [0x5a0624] ??:? _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x62870b] ??:? _ZN12ExpStatement6acceptEP7Visitor [0x61dbc9] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x6289a1] ??:? _ZN17CompoundStatement6acceptEP7Visitor [0x61e319] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN15FuncDeclaration9semantic3EP5Scope [0x5bc8d3] ??:? _ZN14DeclarationExp8semanticEP5Scope [0x59d3fc] ??:? _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x62870b] ??:? _ZN12ExpStatement6acceptEP7Visitor [0x61dbc9] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x6289a1] ??:? _ZN17CompoundStatement6acceptEP7Visitor [0x61e319] ??:? ddmd.statement.Statement ddmd.statementsem.semantic(ddmd.statement.Statement, ddmd.dscope.Scope*) [0x635ff6] ??:? _ZN15FuncDeclaration9semantic3EP5Scope [0x5bc8d3] ??:? _ZN6Module9semantic3EP5Scope [0x5659c1] ??:? int ddmd.mars.tryMain(ulong, const(char)**) [0x5e460f] ??:? _Dmain [0x5e55ba] ??:? _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFNlZv [0x711bee] ??:? scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) [0x711b38] ??:? scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() [0x711baa] ??:? scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) [0x711b38] ??:? _d_run_main [0x711ab6] ??:? main [0x5e5c4f] ??:? __libc_start_main [0xf5f49439] FAIL .dub/build/vibe-d-test-libevent-unittest-linux.posix-x86_64-dmd_2075-719818DEDFB0B36C9A066E0B0EEC8BB5/ vibe-d-test-libevent executable /home/seb/dlang/dmd/generated/linux/debug/64/dmd failed with exit code 1. According to Digger's bisection this first occurs at https://github.com/dlang/phobos/pull/5427 --
Jun 10