[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