Skip to content

Commit 9e94606

Browse files
tbaederrAlexisPerry
authored andcommitted
[clang][Interp] Pointers into unknown-size arrays are never one-past-end
1 parent d2c8609 commit 9e94606

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

clang/lib/AST/Interp/Pointer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,9 @@ class Pointer {
553553
if (!asBlockPointer().Pointee)
554554
return false;
555555

556+
if (isUnknownSizeArray())
557+
return false;
558+
556559
return isElementPastEnd() ||
557560
(getSize() == getOffset() && !isZeroSizeArray());
558561
}

clang/test/AST/Interp/arrays.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,3 +626,4 @@ constexpr int *get2() {
626626
extern int same_entity_2[];
627627
return same_entity_2;
628628
}
629+
static_assert(get2() == same_entity_2, "failed to find previous decl");

0 commit comments

Comments
 (0)