summaryrefslogtreecommitdiffstats
path: root/clang-move
Commit message (Collapse)AuthorAgeFilesLines
* [CMake] Use PRIVATE in target_link_libraries for executablesShoaib Meenai2017-12-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently use target_link_libraries without an explicit scope specifier (INTERFACE, PRIVATE or PUBLIC) when linking executables. Dependencies added in this way apply to both the target and its dependencies, i.e. they become part of the executable's link interface and are transitive. Transitive dependencies generally don't make sense for executables, since you wouldn't normally be linking against an executable. This also causes issues for generating install export files when using LLVM_DISTRIBUTION_COMPONENTS. For example, clang has a lot of LLVM library dependencies, which are currently added as interface dependencies. If clang is in the distribution components but the LLVM libraries it depends on aren't (which is a perfectly legitimate use case if the LLVM libraries are being built static and there are therefore no run-time dependencies on them), CMake will complain about the LLVM libraries not being in export set when attempting to generate the install export file for clang. This is reasonable behavior on CMake's part, and the right thing is for LLVM's build system to explicitly use PRIVATE dependencies for executables. Unfortunately, CMake doesn't allow you to mix and match the keyword and non-keyword target_link_libraries signatures for a single target; i.e., if a single call to target_link_libraries for a particular target uses one of the INTERFACE, PRIVATE, or PUBLIC keywords, all other calls must also be updated to use those keywords. This means we must do this change in a single shot. I also fully expect to have missed some instances; I tested by enabling all the projects in the monorepo (except dragonegg), and configuring both with and without shared libraries, on both Darwin and Linux, but I'm planning to rely on the buildbots for other configurations (since it should be pretty easy to fix those). Even after this change, we still have a lot of target_link_libraries calls that don't specify a scope keyword, mostly for shared libraries. I'm thinking about addressing those in a follow-up, but that's a separate change IMO. Differential Revision: https://reviews.llvm.org/D40823 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@319840 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Find template class forward declarations more precisely.Haojian Wu2017-05-021-6/+8
| | | | | | | | | | | | Reviewers: ioeric Reviewed By: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D32741 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@301914 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Create ClangMoveActionFactory on stackAlexander Shaposhnikov2017-04-141-4/+3
| | | | | | | | | | | | This diff removes unnecessary using of unique_ptr with ClangMoveActionFactory (pico cleanup). NFC Test plan: make check-clang-tools Differential revision: https://reviews.llvm.org/D32063 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@300356 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Extend clang-move to support moving global variable.Haojian Wu2017-02-271-1/+25
| | | | | | | | | | | | | | Summary: Also support dumping global variables. Reviewers: ioeric Reviewed By: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D30337 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@296337 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Haojian Wu2017-01-171-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@292218 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Handle helpers with forward declarations.Haojian Wu2017-01-172-13/+34
| | | | | | | | | | | | Reviewers: ioeric Reviewed By: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28801 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@292215 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Ignore using decls which are defined in macros.Haojian Wu2017-01-171-9/+13
| | | | | | | | | | | | | | | | | Summary: Also ignore helpers which are defined in macro. Currently clang-move doesn't handle macro well enough, especiall for complex macros. This patch will ignore declarations in macros to make the behavior of clang-move more correct. Reviewers: ioeric Reviewed By: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28774 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@292207 91177308-0d34-0410-b5e6-96231b3b80d8
* Update tools to use new getStyle APIAntonio Maiorano2017-01-171-3/+6
| | | | | | | | Depends on https://reviews.llvm.org/D28081 Differential Revision: https://reviews.llvm.org/D28315 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@292175 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Dump enum and type alias declarations.Haojian Wu2017-01-161-0/+6
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28293 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@292098 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Support moving type alias declarations.Haojian Wu2017-01-041-1/+34
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28279 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@290967 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Support moving enum declarations.Haojian Wu2017-01-031-14/+40
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28228 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@290891 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Only move used helper declarations.Haojian Wu2017-01-035-36/+360
| | | | | | | | | | | | | | | | | Summary: Instead of moving all the helper declarations blindly, this patch implements an AST-based call graph solution to make clang-move only move used helper decls to new.cc and remove unused decls in old.cc. Depends on D27674. Reviewers: ioeric Subscribers: mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D27673 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@290873 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Fix incorrect EndLoc for declarations in macros.Haojian Wu2016-12-131-2/+3
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27713 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@289541 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Fix buildbot failuresAlexander Shaposhnikov2016-12-121-1/+2
| | | | | | | Fix the buildbot failures introduced by D27669 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@289465 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Use appendArgumentsAdjuster for adding extra argumentsAlexander Shaposhnikov2016-12-121-25/+17
| | | | | | | | | | | | 1. Remove some boilerplate code for appending -fparse-all-comments to the list of arguments. 2. Run clang-format -i against ClangMoveMain.cpp. Test plan: make check-all Differential revision: https://reviews.llvm.org/D27669 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@289464 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] ignore unsupported symbol kinds when checking if all symbols ↵Eric Liu2016-12-062-2/+21
| | | | | | are moved. git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@288791 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] don't miss ',' in json output when there are duplicate elements.Eric Liu2016-12-031-10/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@288586 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] some tweaks.Haojian Wu2016-12-022-71/+61
| | | | | | | | | * Don't save SourceManager for each declarations. * Rename some out-dated methods. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@288498 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Enable dump all declarations in old header.Haojian Wu2016-11-243-121/+202
| | | | | | | | | | | | | | | | | | | Summary: * Add -dump_dels option to dump all declarations from old header. It will allow clang-move used as a frontend to get declarations from header. Further more, this will make debugging stuff easier. Currently only class/function types are supported. * Refactoring code a little bit by creating a ClangMoveContext which holds all options for ClangMoveTool, which can simplify the code in some degree. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27059 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@287863 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Add some options allowing to add old/new.h to new/old.h ↵Haojian Wu2016-11-233-13/+81
| | | | | | | | | | | | | | | | respectively. Summary: * --new_depend_on_old: new header will include old header * --old_depend_on_new: old header will include new header. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26966 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@287752 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Fix not moving using-decls in global namespace in old.ccHaojian Wu2016-11-181-9/+12
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26844 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@287330 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Support moving function.Haojian Wu2016-11-161-11/+38
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26665 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@287101 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Make the output code look more pretty.Haojian Wu2016-11-151-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add decent blank lines between declarations: * Add extra blank line after #define or #includes. * Add extra blank line between declarations. * Add extra blank line in front of #endif. Previously, the new generated code is quite tight: ``` #ifndef FOO_H #define FOO_H namespace a { class A { public: int f(); }; int A::f() { return 0; } } // namespace a #endif // FOO_H ``` After this patch, the code looks like: ``` #ifndef FOO_H #define FOO_H namespace a { class A { public: int f(); }; int A::f() { return 0; } } // namespace a #endif // FOO_H ``` Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26493 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286943 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Fix an incorrect range for the functions whose returned value ↵Haojian Wu2016-11-141-2/+2
| | | | | | | | | | | | | | | | | | | is a macro Summary: Fix an incorrect range for the functions whose returned value is a macro (e.g. `bool`). This incorrect range can lead to modifications of an unexpected file where the macro is in. We should use expansion location instead of spelling location. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26609 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286833 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Abstract a ClassMather for matching class declarations.Haojian Wu2016-11-142-50/+95
| | | | | | | | | | | | | | | | Summary: No functionality change. This is a refactoring patch, which makes the code more readable and easy to extend it to support more types. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26515 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286825 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix -Wdocumentation warningSimon Pilgrim2016-11-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286449 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Support template class.Haojian Wu2016-11-101-11/+21
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26423 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286427 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Move all code from old.h/cc directly when moving all class ↵Haojian Wu2016-11-082-19/+102
| | | | | | | | | | | | | | declarations from old.h. Summary: When moving all code to new.h/cc, these code also will be formatted based on the given code style. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26236 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286281 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-tools-extra] Format sources with clang-format. NFC.Mandeep Singh Grang2016-11-083-48/+41
| | | | | | | | | | | | | | | | Summary: Ran clang-format on all .c/.cpp/.h files in clang-tools-extra. Excluded the test, unittests, clang-reorder-fields, include-fixer, modularize and pptrace directories. Reviewers: klimek, alexfh Subscribers: nemanjai Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D26329 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@286221 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Support moving template class forward declarations.Haojian Wu2016-10-211-2/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284859 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Move using-decl in old cc.Haojian Wu2016-10-191-14/+27
| | | | | | | | | | | | | | Summary: Another fix is to move the whole anonymous namespace declaration completely instead of moving fun/var declarations only. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25762 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284592 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Fix generating illegal header guard.Haojian Wu2016-10-171-4/+4
| | | | | | | | The filepath might contain some characters (i.e. '@') which are not illegal in c identifiers. This patch changes all non-alphanumeric characters to '_'. git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284391 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Use cl::list for the list of namesAlexander Shaposhnikov2016-10-143-11/+8
| | | | | | | | | | | This diff replaces manual parsing of the comma-separated list of names with cl::list and cl::CommaSeparated. Test plan: make -j8 check-clang-tools Differential revision: https://reviews.llvm.org/D25586 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284291 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Don't overuse Replacements::add.Haojian Wu2016-10-141-58/+20
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25613 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284236 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Add header guard for the new header.Haojian Wu2016-10-141-2/+22
| | | | | | | | | | | | | | | | | | Summary: The header guard generated by clang-move isn't always a perfect style, just avoid getting the header included multiple times during compiling period. Also, we can use llvm-Header-guard clang-tidy check to correct the guard automatically. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25610 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284233 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Matching static class member more correctly.Haojian Wu2016-10-141-1/+7
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25598 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284221 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] error out when fail to create new files.Eric Liu2016-10-131-4/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284155 91177308-0d34-0410-b5e6-96231b3b80d8
* Print stack trace for clang-move tool.Eric Liu2016-10-131-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284148 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Better support enclosing class.Haojian Wu2016-10-131-6/+32
| | | | | | | | | | | | | | | Summary: * When moving an outermost enclosing class, all its nested classes should also be moved together. * Add a test for not moving nested class. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25369 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284111 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommit r283538 "[clang-move] Support moving multiple classes in one run."Haojian Wu2016-10-133-10/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284109 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Compare with real paths of symlinksHaojian Wu2016-10-121-9/+22
| | | | | | | | | | | | Summary: MakeAbsolutePath does wrong things with symlinks previously. When comparing with a symlink, we need to compare with the real path of it. This fixes issues when the build directory is a symlink. Reviewers: ioeric Subscribers: beanz, mgorny, cfe-commits, bkramer Differential Revision: https://reviews.llvm.org/D25508 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@284020 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "[clang-move] Support moving multiple classes in one run."Renato Golin2016-10-073-25/+10
| | | | | | | | | | | This reverts commit r283526 et al as it keeps randomly breaking bots, even after the commit has gone, on other people's commit ranges. Revert "[clang-move] Simplify lint tests" (r283545). Revert "Fix buildbot error." (r283534). Revert "Revert "fix buildbot error" since it is not right fix." (r283538). git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283553 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Support moving multiple classes in one run.Haojian Wu2016-10-073-10/+25
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25309 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283526 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Move comments which are associated with the moved class.Haojian Wu2016-10-063-27/+82
| | | | | | | | | | Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25227 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283425 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Cleanup around replacements.Haojian Wu2016-10-063-15/+36
| | | | | | | | | | | | | | Summary: cleanup the remaining empty namespace after moving out the class defintitions. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25282 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283424 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a documentation warning.Haojian Wu2016-10-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283211 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix windows builtbot error.Haojian Wu2016-10-041-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283205 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Make it support both relative and absolute file path arguments.Haojian Wu2016-10-043-38/+142
| | | | | | | | | | Reviewers: ioeric Subscribers: beanz, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D24922 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@283202 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] Use isStaticStorageClass matcher.Haojian Wu2016-09-271-9/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@282477 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang-move] The new.cc file should include new_header.h instead of old_header.hHaojian Wu2016-09-232-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously, all #includes (includeing old_header.h) in old.cc will be copied to new.cc, however, the new.cc should include new_header.h instead of the old_header.h Before applying the patch, the new.cc looks like: ``` #include "old_header.h" ... ``` The new.cc looks like with this patch: ``` #include "new_header" ... ``` Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24828 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@282247 91177308-0d34-0410-b5e6-96231b3b80d8