summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2018-04-11 23:47:25 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2018-04-11 23:47:25 +0000
commitdee344cf85cec594994f5128e473421901ef7f3c (patch)
tree870c74dc3f70c0a13070b23410e7789338952663 /llvm/tools/llvm-objcopy/llvm-objcopy.cpp
parent815f453f76f502ede5e722a74715d0ba90acdcc8 (diff)
downloadbcm5719-llvm-dee344cf85cec594994f5128e473421901ef7f3c.tar.gz
bcm5719-llvm-dee344cf85cec594994f5128e473421901ef7f3c.zip
Lex: make `clang::Preprocessor::macros` work on MSVC
The order of argument construction is reversed on MS ABI on Windows. When `macros` was invoked, the `end` call is made prior to `begin`. In such a case, the DenseMap (`ModuleMap`) is populated after the `end` iterator is constructed. This reversal results in the invalidation of the end iterator, resulting in a failure at runtime (assertion failure in `DenseMap<T>::operator!=` that "handles are not in sync!"). Ensure that the end iterator is constructed after the begin iterator. This fixes the use of `macros(bool)`, which symptomized as an assertion failure in the swift compiler in the clang importer. llvm-svn: 329866
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud