[PATCH] D120936: [Sema][Windows] Don't special-case void* in __unaligned conversions.
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 8 10:54:05 PST 2022
erichkeane added a comment.
I don't particularly understand this qualifier, is this something that perhaps @rnk could take a look at?
================
Comment at: clang/test/SemaCXX/MicrosoftExtensions.cpp:88
__unaligned B_unaligned *p3 = 0;
- int p4 = foo_unaligned(p3);
+ int p4 = foo_unaligned(p3); // expected-error {{cannot initialize a variable of type 'int' with an rvalue of type 'void *'}}
----------------
Hmm... this one was quite suspicious. In this case, it was choosing the 'int' returning overload, MSVC doesn't do that here, it seems to always choose the best match without the __unaligned (as you're doing now).
================
Comment at: clang/test/SemaCXX/MicrosoftExtensions.cpp:90
- B_unaligned *p5 = p3; // expected-error {{cannot initialize a variable of type 'B_unaligned *' with an lvalue of type '__unaligned B_unaligned *'}}
+ B_unaligned *p5 = p3;
----------------
MSVC is warning on this one, its a shame we don't have something similar.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120936/new/
https://reviews.llvm.org/D120936
More information about the cfe-commits
mailing list