fixes #20141; dereferencing pointer to incomplete type error with cast (#20147)

Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
This commit is contained in:
ringabout 2022-09-28 19:57:47 +08:00 • committed by GitHub
commit e33e9e4a32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 0 deletions

27
tests/ccgbugs/t20141.nim Normal file
View file

@ -0,0 +1,27 @@
discard """
joinable: false
"""
# bug #20141
type
A = object
B = object
U = proc()
proc m(h: var B) = discard
template n[T, U](x: U): T =
static: doAssert true
cast[ptr T](addr x)[]
proc k() =
var res: A
m(n[B](res))
proc w(mounter: U) = discard
proc mount(proto: U) = discard
proc v() = mount k
# This is required for failure
w(v)