summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJuan M Gómez <info@jmgomez.me>2024-08-12 17:10:17 +0100
committerGitHub <noreply@github.com>2024-08-12 18:10:17 +0200
commit630c304a2dff6be70717224e533c1ad6f01875e3 (patch)
tree506cb15d13e8b840ea450c2972a9781d8ad36708
parent0c890ff9a70258af8231967229b891df9731a5df (diff)
downloadNim-630c304a2dff6be70717224e533c1ad6f01875e3.tar.gz
Adds `SEQ_DECL_SIZE 1` back under `clang` and a test (#23942)
-rw-r--r--lib/nimbase.h4
-rw-r--r--tests/cpp/fam.h4
-rw-r--r--tests/cpp/tfam.nim7
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/nimbase.h b/lib/nimbase.h
index 4674b64c8..cdbb68ff2 100644
--- a/lib/nimbase.h
+++ b/lib/nimbase.h
@@ -475,7 +475,9 @@ typedef char* NCSTRING;
   } name = {{length, (NI) ((NU)length | NIM_STRLIT_FLAG)}, str}
 
 /* declared size of a sequence/variable length array: */
-#if  defined(__GNUC__) || defined(__clang__) || defined(_MSC_VER)
+#if defined(__cplusplus) && defined(__clang__)
+#  define SEQ_DECL_SIZE 1
+#elif defined(__GNUC__) || defined(_MSC_VER)
 #  define SEQ_DECL_SIZE /* empty is correct! */
 #else
 #  define SEQ_DECL_SIZE 1000000
diff --git a/tests/cpp/fam.h b/tests/cpp/fam.h
new file mode 100644
index 000000000..ad576425b
--- /dev/null
+++ b/tests/cpp/fam.h
@@ -0,0 +1,4 @@
+struct Test{
+  ~Test() {
+  }
+};
diff --git a/tests/cpp/tfam.nim b/tests/cpp/tfam.nim
new file mode 100644
index 000000000..6bd89fe24
--- /dev/null
+++ b/tests/cpp/tfam.nim
@@ -0,0 +1,7 @@
+discard """
+  targets: "cpp"
+"""
+type 
+  Test {.importcpp, header: "fam.h".} = object
+
+let test = newSeq[Test]()
\ No newline at end of file