am 68c072cf: Fix overly strict check for float3 in structures.
* commit '68c072cfbb2430b55478350ac74aa5279ae4d9be':
Fix overly strict check for float3 in structures.
diff --git a/slang_rs_export_type.cpp b/slang_rs_export_type.cpp
index 94bd6bb..ae13bf6 100644
--- a/slang_rs_export_type.cpp
+++ b/slang_rs_export_type.cpp
@@ -512,7 +512,9 @@
const clang::Type *ElementType = GET_EXT_VECTOR_ELEMENT_TYPE(EVT);
if (TargetAPI < SLANG_ICS_TARGET_API &&
InCompositeType &&
- EVT->getNumElements() == 3) {
+ EVT->getNumElements() == 3 &&
+ ND &&
+ ND->getLinkage() == clang::ExternalLinkage) {
ReportTypeError(&C.getDiagnostics(), ND, NULL,
"structs containing vectors of dimension 3 cannot "
"be exported at this API level: '%0'");
diff --git a/tests/P_static_struct/static_struct.rs b/tests/P_static_struct/static_struct.rs
new file mode 100644
index 0000000..0b3e9ec
--- /dev/null
+++ b/tests/P_static_struct/static_struct.rs
@@ -0,0 +1,11 @@
+// -target-api 12
+#pragma version(1)
+#pragma rs java_package_name(com.example);
+
+typedef struct Plane_s {
+ float3 point;
+} Plane;
+
+static Plane carouselPlane = {
+ { 0.0f, 0.0f, 0.0f }
+};
diff --git a/tests/P_static_struct/stderr.txt.expect b/tests/P_static_struct/stderr.txt.expect
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/P_static_struct/stderr.txt.expect
diff --git a/tests/P_static_struct/stdout.txt.expect b/tests/P_static_struct/stdout.txt.expect
new file mode 100644
index 0000000..9bf4e1c
--- /dev/null
+++ b/tests/P_static_struct/stdout.txt.expect
@@ -0,0 +1 @@
+Generating ScriptC_static_struct.java ...