majnemer added a comment.
In http://reviews.llvm.org/D19654#423382, @andreybokhanko wrote:
> David, thank you for the thorough review! -- it definitely made the patch
> stronger and me even more paranoid than the rest of Intel. :-)
Thanks for implementing this :)
>
>
> In
andreybokhanko added a comment.
David, thank you for the thorough review! -- it definitely made the patch
stronger and me even more paranoid than the rest of Intel. :-)
In http://reviews.llvm.org/D19654#422445, @majnemer wrote:
> FYI, we will also want to update `getAddrOfCXXCatchHandler` and
This revision was automatically updated to reflect the committed changes.
Closed by commit rL268727: [MSVC] Implementation of __unaligned as a proper
type qualifier (authored by asbokhan).
Changed prior to commit:
http://reviews.llvm.org/D19654?vs=55588=56401#toc
Repository:
rL LLVM
majnemer accepted this revision.
majnemer added a comment.
This revision is now accepted and ready to land.
LGTM
FYI, we will also want to update `getAddrOfCXXCatchHandler` and `getThrowInfo`
to correctly handle `__unaligned`.
http://reviews.llvm.org/D19654
andreybokhanko added a comment.
David, just noticed that your first question doesn't have a redefinition. For
this program:
__unaligned int unaligned_foo3() { return 0; }
auto z = unaligned_foo3();
Both MS and us mangle z the same:
?z@@3HA
Yours,
Andrey
http://reviews.llvm.org/D19654
andreybokhanko marked an inline comment 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) ||
majnemer added inline comments.
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(T)) {
majnemer added inline comments.
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(T)) {
What Reid said...
Yours,
Andrey
> 5 мая 2016 г., в 1:48, Reid Kleckner написал(а):
>
> rnk added inline comments.
>
>
> Comment at: lib/AST/MicrosoftMangle.cpp:1583-1584
> @@ -1579,2 +1582,4 @@
> case QMM_Result:
> +// Presence of __unaligned qualifier
rnk added inline comments.
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(T)) {
majnemer added inline comments.
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(T)) {
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) ||
majnemer added inline comments.
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(T)) {
andreybokhanko updated this revision to Diff 55588.
andreybokhanko added a comment.
Fixed a bug uncovered by David Majnemer's review; added tests he asked for.
http://reviews.llvm.org/D19654
Files:
include/clang/AST/Type.h
include/clang/Basic/AddressSpaces.h
include/clang/Basic/Attr.td
majnemer added a comment.
It would be good to have a test for the variable template case:
template
T x;
auto g() { return x; }
should mangle to `??$x@PEFAH@@3PEFAHEFA`
http://reviews.llvm.org/D19654
___
cfe-commits mailing list
majnemer added inline comments.
Comment at: lib/AST/MicrosoftMangle.cpp:1446-1451
@@ -1445,5 +1445,8 @@
Out << 'E';
+ if (!PointeeType.isNull() && PointeeType.getLocalQualifiers().hasUnaligned())
+Out << 'F';
+
if (HasRestrict)
Out << 'I';
}
16 matches
Mail list logo