Skip to content

Simple program mixing int and floats fails to compile at the C compilation stage #22888

@AngelEzquerra

Description

@AngelEzquerra

Description

The following simple program fails to compile at the C compilation stage. No errors at the nim compilation stage are shown:

proc dummy*[T: SomeNumber](a: T, b: T = 2.5): T =
  result = a

echo dummy(2)

The compilation error is:

C:\repositories>nim -f r compilation_failure.nim
Hint: used config file 'C:\Users\user\.choosenim\toolchains\nim-2.0.0\config\nim.cfg' [Conf]
Hint: used config file 'C:\Users\user\.choosenim\toolchains\nim-2.0.0\config\config.nims' [Conf]
........................................................................
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/system/exceptions.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/std/private/digitsutils.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/system/dollars.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/std/exitprocs.nimCC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/std/syncio.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/system.nim
CC: compilation_failure.nim
C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c: In function 'NimMainModule':
C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c:179:55: error: expected expression before ')' token
  179 |         T3_ = dummy__compilation95failure_u6(((NI)2), );
      |                                                       ^
Error: execution of an external compiler program 'gcc.exe -c  -w -fmax-errors=3 -mno-ms-bitfields   -IC:\Users\user\.choosenim\toolchains\nim-2.0.0\lib -IC:\repositories -o C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c.o C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c' failed with exit code: 1

Mixing ints and floats in this way is of course a dummy thing to do but if this is wrong, I expected an error at the nim compilation stage.

Nim Version

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

active boot switches: -d:release

Current Output

C:\repositories>nim -f r compilation_failure.nim
Hint: used config file 'C:\Users\user\.choosenim\toolchains\nim-2.0.0\config\nim.cfg' [Conf]
Hint: used config file 'C:\Users\user\.choosenim\toolchains\nim-2.0.0\config\config.nims' [Conf]
........................................................................
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/system/exceptions.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/std/private/digitsutils.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/system/dollars.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/std/exitprocs.nimCC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/std/syncio.nim
CC: ../Users/user/.choosenim/toolchains/nim-2.0.0/lib/system.nim
CC: compilation_failure.nim
C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c: In function 'NimMainModule':
C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c:179:55: error: expected expression before ')' token
  179 |         T3_ = dummy__compilation95failure_u6(((NI)2), );
      |                                                       ^
Error: execution of an external compiler program 'gcc.exe -c  -w -fmax-errors=3 -mno-ms-bitfields   -IC:\Users\user\.choosenim\toolchains\nim-2.0.0\lib -IC:\repositories -o C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c.o C:\Users\user\nimcache\compilation_failure_d\@mcompilation_failure.nim.c' failed with exit code: 1

Expected Output

I expected either no error (and b being converted into T) or a compilation error at the nim compilation stage.

Possible Solution

No response

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions