[PATCH] D48928: [ms] Fix mangling of string literals used to initialize arrays larger or smaller than the literal
Hans Wennborg via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 4 03:24:14 PDT 2018
hans created this revision.
hans added reviewers: thakis, majnemer.
A Chromium developer reported a bug which turned out to be a mangling collision between these two literals:
char s[] = "foo";
char t[32] = "foo";
They may look the same, but for the initialization of t we will (under some circumstances) use a literal that's extended with zeros, and both the length and those zeros should be accounted for by the mangling.
This actually makes the mangling code simpler: where it previously had special logic for null terminators, which are not part of the StringLiteral, that is now covered by the general algorithm.
https://reviews.llvm.org/D48928
Files:
lib/AST/MicrosoftMangle.cpp
test/CodeGen/mangle-ms-string-literals.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48928.154082.patch
Type: text/x-patch
Size: 5045 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180704/b24d50a5/attachment.bin>
More information about the cfe-commits
mailing list