diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-09-01 21:23:58 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-09-01 21:23:58 +0000 |
commit | 6ddc636862095a3d6f1b02ea034a353c19fff328 (patch) | |
tree | 6d0ce200909cf6de6484896ac403384425cd604e /clang/lib/AST/MicrosoftMangle.cpp | |
parent | ee1cff5fab3c713f40a89741369bbcaf26b7c8be (diff) | |
download | bcm5719-llvm-6ddc636862095a3d6f1b02ea034a353c19fff328.tar.gz bcm5719-llvm-6ddc636862095a3d6f1b02ea034a353c19fff328.zip |
[MC] Add support for generating COFF CRCs
COFF sections are accompanied with an auxiliary symbol which includes a
checksum. This checksum used to be filled with just zero but this seems
to upset LINK.exe when it is processing a /INCREMENTAL link job.
Instead, fill the CheckSum field with the JamCRC of the section
contents. This matches MSVC's behavior.
This fixes PR19666.
N.B. A rather simple implementation of JamCRC is given. It implements
a byte-wise calculation using the method given by Sarwate. There are
implementations with higher throughput like slice-by-eight and making
use of PCLMULQDQ. We can switch to one of those techniques if it turns
out to be a significant use of time.
llvm-svn: 246590
Diffstat (limited to 'clang/lib/AST/MicrosoftMangle.cpp')
0 files changed, 0 insertions, 0 deletions