* defaults to Orc * bootstrap using refc * use gc * init orc defines * unregister orc * fix gc * fix commands * add prepareMutation for orc * enable deepcopy for orc * prepareMutation * more fixes * some cases * bug #20081 * partial fixes * partial fixes * fixes command line * more fixes * build Nim with refc * use gc * more fixes * rstore * orc doesn't support threadpool * more shallowCopy * more fixes * fixes unsafeNew * workarounds * small * more fixes * fixes some megatest * tcodegenbugs1 refc * fxies megatest * build nimble with refc * workaround tensordsl tests * replace shallowCopy with move * fixes action * workaround * add todo * fixes important packages * unpublic unregisterArcOrc * fixes cpp * enable windows Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
27 lines
461 B
Nim
27 lines
461 B
Nim
discard """
|
|
matrix: "--mm:refc"
|
|
ccodeCheck: "\\i @'__attribute__((noreturn))' .*"
|
|
action: compile
|
|
"""
|
|
|
|
proc noret1*(i: int) {.noreturn.} =
|
|
echo i
|
|
|
|
|
|
proc noret2*(i: int): void {.noreturn.} =
|
|
echo i
|
|
|
|
if true: noret1(1)
|
|
if true: noret2(2)
|
|
|
|
var p {.used.}: proc(i: int): int
|
|
doAssert(not compiles(
|
|
p = proc(i: int): int {.noreturn.} = i # noreturn lambda returns int
|
|
))
|
|
|
|
|
|
doAssert(not compiles(
|
|
block:
|
|
noret1(5)
|
|
echo 1 # statement after noreturn
|
|
))
|