aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2020-02-11 09:02:22 -0800
committerLang Hames <lhames@gmail.com>2020-02-11 12:56:41 -0800
commitca6f58486ffda249a4330f5a9e20266ea8a40806 (patch)
tree4652399a3beb5547b8ed1d78b0b9a70c536bdb28 /clang/lib/Frontend/CompilerInvocation.cpp
parent7a6ae494c522e91f56c91a27045ebfdcbd7327fc (diff)
downloadllvm-ca6f58486ffda249a4330f5a9e20266ea8a40806.zip
llvm-ca6f58486ffda249a4330f5a9e20266ea8a40806.tar.gz
llvm-ca6f58486ffda249a4330f5a9e20266ea8a40806.tar.bz2
[ORC] Fix symbol dependence propagation algorithm in ObjectLinkingLayer.
ObjectLinkingLayer was not correctly propagating dependencies through local symbols within an object. This could cause symbol lookup to return before a searched-for symbol is ready if the following conditions are met: (1) The definition of the symbol being searched for transitively depends on a local symbol within the same object, and that local symbol in turn transitively depends on an external symbol provided by some other module in the JIT. (2) Concurrent compilation is enabled. (3) Thread scheduling causes the lookup of the searched-for symbol to return before all transitive dependencies of the looked-up symbol are emitted. This bug was found by inspection and has not been observed in practice. A jitlink test case has been added to verify that symbol dependencies are correctly propagated through local symbol definitions.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions