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

Error: internal error: genMagicExpr: mDup when using arrayWith with some types. #22923

Closed
Archargelod opened this issue Nov 8, 2023 · 0 comments · Fixed by #23182
Closed
Assignees

Comments

@Archargelod
Copy link

Archargelod commented Nov 8, 2023

Description

Procedure withArray, when used with any types except int and string as first argument (I tested int32, int64, uint, uint8, char), crashes the compiler:

let
  a: int = 100
# a: string = "nim"
  b: int32 = 200'i32
# b: char = 'c'
# b: uint = 300'u

let
  x = arrayWith(a, 8) # compiles
  y = arrayWith(b, 8) # internal error
# y = arrayWith(14, 8) # integer literal also results in a crash

echo x
echo y

Nim Version

Nim Compiler Version 2.0.0 [Linux: amd64]
Compiled at 2023-08-05
Copyright (c) 2006-2023 by Andreas Rumpf

active boot switches: -d:release


Nim Compiler Version 2.0.0 [Linux: amd64]
Compiled at 2023-11-07
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: a488067
active boot switches:


Nim Compiler Version 2.1.1 [Linux: amd64]
Compiled at 2023-11-08
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: 2e070df
active boot switches: -d:release

Current Output

nim-2.0.0-release

/usr/lib64/nim/lib/system.nim(2818, 25) Error: internal error: genMagicExpr: mDup
No stack traceback available
To create a stacktrace, rerun compilation with './koch temp c <file>', see https://nim-lang.github.
io/Nim/intern.html#debugging-the-compiler for details

nim-devel-debug

Hint: used config file '/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/config/nim.cfg' [Conf]
Hint: used config file '/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/config/config.nims' [Conf]
.....................................................................
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/lib/system.nim(2916, 25) Error: internal error: genMagicExpr: mDup
Traceback (most recent call last)
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/nim.nim(168) nim
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/nim.nim(123) handleCmdLine
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/main.nim(338) mainCommand
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/main.nim(306) compileToBackend
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/main.nim(143) commandCompileToC
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/pipelines.nim(312) compilePipelineProject
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/pipelines.nim(242) compilePipelineModule
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/pipelines.nim(186) processPipelineModule
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/pipelines.nim(24) processPipeline
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(2117) genTopLevelStmt
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(1145) genProcBody
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3112) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1281) genTryGoto
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2749) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3083) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(431) genVarStmt
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(414) genSingleVar
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(401) genSingleVar
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(137) loadInto
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgcalls.nim(817) genAsgnCall
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgcalls.nim(420) genPrefixCall
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(746) initLocExpr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2935) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(1385) genProc
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(1359) genProcNoForward
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(1220) genProcAux
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/cgen.nim(1145) genProcBody
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3061) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(658) genBlock
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3061) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(658) genBlock
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3082) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(634) genWhileStmt
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2749) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3063) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2760) genStmtList
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1651) genStmts
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3067) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3095) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(1644) genAsgn
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgstmts.nim(147) loadInto
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(3020) expr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/ccgexprs.nim(2403) genMagicExpr
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/msgs.nim(630) internalErrorImpl
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/msgs.nim(585) liMessage
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/msgs.nim(434) handleError
/home/archargelod/Fluffy/code/nim/atlas-workspace/nim-devel/compiler/msgs.nim(423) quit

Expected Output

[100, 100, 100, 100, 100, 100, 100, 100]
[200, 200, 200, 200, 200, 200, 200, 200]

Possible Solution

No response

Additional Information

No response

@ringabout ringabout self-assigned this Nov 8, 2023
ringabout added a commit that referenced this issue Jan 8, 2024
Araq pushed a commit that referenced this issue Jan 11, 2024
narimiran pushed a commit that referenced this issue Apr 19, 2024
fixes #22923

(cherry picked from commit 29ac3c9)
narimiran pushed a commit that referenced this issue Apr 20, 2024
fixes #22923

(cherry picked from commit 29ac3c9)
narimiran pushed a commit that referenced this issue Apr 20, 2024
fixes #22923

(cherry picked from commit 29ac3c9)
narimiran added a commit that referenced this issue Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants