summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/JSONCompilationDatabase.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-08-24 09:53:43 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-08-24 09:53:43 +0000
commit387ffe7d4bf36388dc9063c40878f1d68c450ba3 (patch)
tree33632ac96e4c93848728ba2f42db0a25fd992221 /clang/lib/Tooling/JSONCompilationDatabase.cpp
parent00492cab3e1b4cdb5a61991d03bd09e58b90747c (diff)
downloadbcm5719-llvm-387ffe7d4bf36388dc9063c40878f1d68c450ba3.tar.gz
bcm5719-llvm-387ffe7d4bf36388dc9063c40878f1d68c450ba3.zip
Try to appease MSVC even more elaborately in the alignment hacking space.
MSVC doesn't support passing by-value parameters with alignment of 16-bytes or higher apparantly. What is deeply confusing is that it seems to *sometimes* (but not always) apply this to any type whose alignment is set using __declspec(align(...)). This caused lots of errors when we switch SmallVector over to use the automatically aligned character array utilities as they used __declspec(align(...)) heavily. As a pretty horrible but effective work-around, we instead cherry pick the smallest alignment sizes with specific types that happen to have the correct alignment, and then fall back to the attribute solution past them. This should resolve the MSVC build errors folks have been hitting. Sorry for that. In good news, it will do this without introducing other UB I hope. =] Thanks to Timur Iskhodzhanov for helping me test this! llvm-svn: 162549
Diffstat (limited to 'clang/lib/Tooling/JSONCompilationDatabase.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud