aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-09-07 10:29:22 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-09-07 10:29:22 +0000
commit475ce5a26c5f17a549342e57de30e896bec365a1 (patch)
tree9157ce134c2278b79d35ef79b845836e0cce0461 /clang/lib/Frontend/CompilerInvocation.cpp
parentb746df0b0a1637803b131598daca5907955facb3 (diff)
downloadllvm-475ce5a26c5f17a549342e57de30e896bec365a1.zip
llvm-475ce5a26c5f17a549342e57de30e896bec365a1.tar.gz
llvm-475ce5a26c5f17a549342e57de30e896bec365a1.tar.bz2
[dsymutil] Prevent non-determinism due to threading.
Before this patch, analyzeContext called getCanonicalDIEOffset(), for which the result depends on the timings of the setCanonicalDIEOffset() calls in the cloneLambda. This can lead to slightly different output between runs due to threading. To prevent this from happening, we now record the output debug info size after importing the modules (before any concurrent processing takes place). This value, named the ModulesEndOffset is used to compare the canonical DIE offset against. If the value is greater than this offset, the canonical DIE offset has been updated during cloning, and should therefore not be considered for pruning. Differential revision: https://reviews.llvm.org/D51443 llvm-svn: 341649
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions