[backport] fixes #23796; remove extra indirection for args in importc'ed functions in cpp (#23800)

fixes #23796

(cherry picked from commit 1dcc364cd2)
This commit is contained in:
Alexander Kernozhitsky
2024-07-06 23:10:15 +02:00
committed by narimiran
parent 02eb396f45
commit 1100f550dc
2 changed files with 27 additions and 1 deletions

25
tests/ccgbugs/t23796.nim Normal file
View File

@@ -0,0 +1,25 @@
discard """
targets: "c cpp"
"""
# bug #23796
{.emit: """
#ifdef __cplusplus
extern "C" {
#endif
void fooArr(float data[3]) {}
void fooIntArr(int id, float data[3]) {}
#ifdef __cplusplus
}
#endif
""".}
proc fooArr(data: var array[3, cfloat]) {.importc.}
proc fooIntArr(id: cint, data: var array[3, cfloat]) {.importc, nodecl.}
var arr = [cfloat 1, 2, 3]
fooArr(arr)
fooIntArr(1, arr)