[PATCH] D18596: [MSVC] PR27132: Proper mangling for __unaligned qualifier

Andrey Bokhanko via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 8 06:56:05 PDT 2016


andreybokhanko updated this revision to Diff 53022.
andreybokhanko added a comment.

This patch implements "__unaligned" as a qualifier (as per David Majnemer's request).

Most of the changes are miscellaneous small stuff one has to add when adding a new qualifier.

Other notable things are:

- One bit is stolen from "AddressSpace" to store __unaligned. This resulted in changes in OpenCL code and tests, that implicitly assumed that AddressSpace size is 24 bits.
- Sema checks added. It verifies that __unaligned can be used with non-pointers, for overloading and that it doesn't get recognized without -fms-compatibility option.
- Proper mangling (along with tests) for __unaligned added. Note that non-pointer __unaligned args don't affect mangling.

Andrey


http://reviews.llvm.org/D18596

Files:
  include/clang/AST/Type.h
  include/clang/Basic/AddressSpaces.h
  include/clang/Basic/Attr.td
  include/clang/Sema/DeclSpec.h
  include/clang/Sema/Sema.h
  lib/AST/MicrosoftMangle.cpp
  lib/Parse/ParseDecl.cpp
  lib/Parse/ParseTentative.cpp
  lib/Sema/DeclSpec.cpp
  lib/Sema/SemaCodeComplete.cpp
  lib/Sema/SemaDecl.cpp
  lib/Sema/SemaDeclObjC.cpp
  lib/Sema/SemaType.cpp
  test/CodeGenCXX/mangle-ms-cxx11.cpp
  test/Sema/address_spaces.c
  test/Sema/invalid-assignment-constant-address-space.c
  test/SemaCXX/MicrosoftExtensions.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18596.53022.patch
Type: text/x-patch
Size: 22226 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160408/c5cdc843/attachment-0001.bin>


More information about the cfe-commits mailing list