[PATCH] D19654: PR27132: Proper mangling for __unaligned qualifier (now with PR27367 fixed)
Andrey Bokhanko via cfe-commits
cfe-commits at lists.llvm.org
Wed May 4 03:32:05 PDT 2016
andreybokhanko marked 3 inline comments as done.
================
Comment at: lib/AST/MicrosoftMangle.cpp:1583-1584
@@ -1579,2 +1582,4 @@
case QMM_Result:
+ // Presence of __unaligned qualifier shouldn't affect mangling here.
+ Quals.removeUnaligned();
if ((!IsPointer && Quals) || isa<TagType>(T)) {
----------------
majnemer wrote:
> andreybokhanko wrote:
> > Done. Test added.
> Hmm, can you give a concrete example why we need this line?
Sure. An example is:
__unaligned int unaligned_foo3() { return 0; }
MS mangles it as
?unaligned_foo3@@YAHXZ
However, if __unaligned is taken into account, "if ((!IsPointer && Quals) || isa<TagType>(T))" computes to true and clang adds "?A", resulting to
?unaligned_foo3@@YA?AHXZ
Yours,
Andrey
http://reviews.llvm.org/D19654
More information about the cfe-commits
mailing list