[all-commits] [llvm/llvm-project] 6237c9: [lldb] Don't emit artificial constructor declarati...
Raphael Isemann via All-commits
all-commits at lists.llvm.org
Thu Oct 17 11:15:32 PDT 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 6237c9fe6ce966ce366005a55df8c267ea32a064
https://github.com/llvm/llvm-project/commit/6237c9fe6ce966ce366005a55df8c267ea32a064
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2019-10-17 (Thu, 17 Oct 2019)
Changed paths:
M lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
M lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/main.cpp
A lldb/packages/Python/lldbsuite/test/commands/expression/ignore-artificial-constructors/TestIgnoreArtificialConstructors.py
A lldb/packages/Python/lldbsuite/test/commands/expression/ignore-artificial-constructors/main.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Log Message:
-----------
[lldb] Don't emit artificial constructor declarations as global functions
Summary:
When we have a artificial constructor DIE, we currently create from that a global function with the name of that class.
That ends up causing a bunch of funny errors such as "must use 'struct' tag to refer to type 'Foo' in this scope" when
doing `Foo f`. Also causes that constructing a class via `Foo()` actually just calls that global function.
The fix is that when we have an artificial method decl, we always treat it as handled even if we don't create a CXXMethodDecl
for it (which we never do for artificial methods at the moment).
Fixes rdar://55757491 and probably some other radars.
Reviewers: aprantl, vsk, shafik
Reviewed By: aprantl
Subscribers: jingham, shafik, labath, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D68130
llvm-svn: 375151
More information about the All-commits
mailing list