summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-lower-buffer-element-type.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-12-09 04:48:03 -0800
committerGitHub <noreply@github.com>2024-12-09 20:48:03 +0800
commit09a9d673322ebf4ca2fcb7d48f13a44e015ea33f (patch)
tree8bae8fa5718669dcbff98b8bcb29784483905f34 /source/slang/slang-ir-lower-buffer-element-type.cpp
parent051ae8acec0a641bcaf86e7eeff35eff29e8922d (diff)
Allow pointers to existential values. (#5793)
* Fix pointer offset logic and add executable tests. * Fix. * Fix test. * Add existential ptr test. * Allow pointers to existential values. * Fix. * Fix. --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-lower-buffer-element-type.cpp')
-rw-r--r--source/slang/slang-ir-lower-buffer-element-type.cpp22
1 files changed, 0 insertions, 22 deletions
diff --git a/source/slang/slang-ir-lower-buffer-element-type.cpp b/source/slang/slang-ir-lower-buffer-element-type.cpp
index bd3e350bc..dd62ca02c 100644
--- a/source/slang/slang-ir-lower-buffer-element-type.cpp
+++ b/source/slang/slang-ir-lower-buffer-element-type.cpp
@@ -901,28 +901,6 @@ struct LoweredElementTypeContext
{
builder.setInsertBefore(ptrVal);
auto newArrayPtrVal = fieldAddr->getBase();
- // Is base a pointer to an empty struct? If so, don't offset it.
- // For example, if the user has written:
- // ```
- // struct S {int arr[]};
- // uniform S* p;
- // void test() { p->arr[1]; }
- // ```
- // Then `S` will become an empty struct after we remove `arr[]`.
- // And `p` will be come a `void*`.
- // We don't want to offset `p` to `p+1` to get the starting address of
- // the array in this case.
- IRSizeAndAlignment parentStructSize = {};
- getNaturalSizeAndAlignment(
- target->getOptionSet(),
- tryGetPointedToType(&builder, fieldAddr->getBase()->getDataType()),
- &parentStructSize);
- if (parentStructSize.size != 0)
- {
- newArrayPtrVal = builder.emitGetOffsetPtr(
- fieldAddr->getBase(),
- builder.getIntValue(builder.getIntType(), 1));
- }
auto loweredInnerType =
getLoweredTypeInfo(unsizedArrayType->getElementType(), layoutRules);