Commit Graph

4 Commits

Author SHA1 Message Date
adrian-prantl
7035047868 Revert " Stop producing line and file debug information for clang::Decls." 2019-03-05 08:28:17 -08:00
Adrian Prantl
b63ab4534b Stop producing line and file debug information for clang::Decls.
It would be nice to query the clang::SourceManager for the source
location of the clang::Decl in IRGenDebugInfo, but module out-of-date
rebuilds may unload previously loaded clang::Modules and thus also
invalidate source locations pointed to, leading to a use-after-free
here. If this functionality is desired, the source location must be
captured by ClangImporter and stored on the side.

LLDB does not actually make use of this information for non-C++ types
(it is really helpful with debugging the debug info itself, though),
so we can avoid the potential use-after-free and crash by not doing it.

<rdar://problem/48509051>
2019-03-04 14:36:29 -08:00
Adrian Prantl
21f2c3d35b Bring the Swift frontend's handling of DIFiles in synch with CFE.
This applies the same changes from Clang CFE r349065 to the Swift
frontend to unify how filenames, cmpilation directories and absolute
paths in filenames and path remappings are handled.
2019-02-06 09:00:32 -08:00
Adrian Prantl
0b32799972 Debug Info: Normalize paths when creating DIFile objects.
For a yet-to-be-determined reason the Clang SourceManager returns
source file paths with a ./ component before the filename if the
module cache is cold.

<rdar://problem/43439465>
2018-10-04 17:45:01 -07:00