aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/FrontendTool
AgeCommit message (Collapse)AuthorFilesLines
2016-08-26C++ Modules TS: add frontend support for building pcm files from moduleRichard Smith1-1/+4
interface files. At the moment, all declarations (and no macros) are exported, and 'export' declarations are not supported yet. llvm-svn: 279794
2016-08-08[analyzer] Command line option to show enabled checker list.Gabor Horvath1-0/+5
This patch adds a command line option to list the checkers that were enabled by analyzer-checker and not disabled by -analyzer-disable-checker. It can be very useful to debug long command lines when it is not immediately apparent which checkers are turned on and which checkers are turned off. Differential Revision: https://reviews.llvm.org/D23060 llvm-svn: 278006
2016-03-15Make it possible for AST plugins to enable themselves by defaultJohn Brawn1-1/+15
Currently when an AST plugin is loaded it must then be enabled by passing -plugin pluginname or -add-plugin pluginname to the -cc1 command line. This patch adds a method to PluginASTAction which allows it to declare that the action happens before, instead of, or after the main AST action, plus the relevant changes to make the plugin action happen at that time automatically. Differential Revision: http://reviews.llvm.org/D17959 llvm-svn: 263546
2016-02-11Revert r260265, "clang-cl: Support loading plugins on Windows"NAKAMURA Takumi1-8/+1
It causes memory exhaust on mingw-w64(x64). Investigating. llvm-svn: 260536
2016-02-09clang-cl: Support loading plugins on WindowsEhsan Akhgari1-1/+8
This builds on the support being added to LLVM to import and export registries from DLLs. This will allow us to pick up the registry entries added in the DLL's copy of FrontendPluginRegistry. This will allow us to use plugins on Windows using: $ clang-cl -Xclang -load -Xclang plugin.dll \ -Xclang -add-plugin -Xclang foo llvm-svn: 260265
2016-02-07[Frontend] Make the memory management of FrontendAction pointers explicit by ↵Argyrios Kyrtzidis1-42/+47
using unique_ptr. llvm-svn: 260048
2016-01-26Remove autoconf supportChris Bieneman1-25/+0
Summary: This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html "This is the way [autoconf] ends Not with a bang but a whimper." -T.S. Eliot Reviewers: chandlerc, grosbach, bob.wilson, echristo Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D16472 llvm-svn: 258862
2014-08-29Provide a BuryPointer for unique_ptrs.David Blaikie1-1/+1
In theory, it'd be nice if we could move to a case where all buried pointers were buried via unique_ptr to demonstrate that the program had finished with the value (that we could really have cleanly deallocated it) but instead chose to bury it. I think the main reason that's not possible right now is the various IntrusiveRefCntPtrs in the Frontend, sharing ownership for a variety of compiler bits (see the various similar "CompilerInstance::releaseAndLeak*" functions). I have yet to figure out their correct ownership semantics - but perhaps, even if the intrusiveness can be removed, the shared ownership may yet remain and that would lead to a non-unique burying as is there today. (though we could model that a little better - by passing in a shared_ptr, etc - rather than needing the two step that's currently used in those other releaseAndLeak* functions) This might be a bit more robust if BuryPointer took the boolean: BuryPointer(bool, unique_ptr<T>) and the choice to bury was made internally - that way, even when DisableFree was not set, the unique_ptr would still be null in the caller and there'd be no chance of accidentally having a different codepath where the value is used after burial in !DisableFree, but it becomes null only in DisableFree, etc... llvm-svn: 216742
2014-07-16Make clang's rewrite engine a core featureAlp Toker2-26/+5
The rewrite facility's footprint is small so it's not worth going to these lengths to support disabling at configure time, particularly since key compiler features now depend on it. Meanwhile the Objective-C rewriters have been moved under the ENABLE_CLANG_ARCMT umbrella for now as they're comparatively heavy and still potentially worth excluding from lightweight builds. Tests are now passing with any combination of feature flags. The flags historically haven't been tested by LLVM's build servers so caveat emptor. llvm-svn: 213171
2014-05-26[C++11] Use 'nullptr'.Craig Topper1-4/+4
llvm-svn: 209612
2014-05-17[objcmt] Don't wrap a PCH generation action with a ObjCMigrateAction one, it ↵Argyrios Kyrtzidis1-1/+2
messes up the PCH file. rdar://16941811 llvm-svn: 209059
2014-05-03[leaks] Don't leak the fake arguments we synthesize for LLVM optionChandler Carruth1-2/+2
parsing. llvm-svn: 207899
2014-03-07Replace OwningPtr with std::unique_ptr.Ahmed Charles1-3/+3
This compiles cleanly with lldb/lld/clang-tools-extra/llvm. llvm-svn: 203279
2014-03-07Change OwningPtr::take() to OwningPtr::release().Ahmed Charles1-2/+2
This is a precursor to moving to std::unique_ptr. llvm-svn: 203275
2014-02-26[CMake] Use LINK_LIBS instead of target_link_libraries().NAKAMURA Takumi1-10/+13
llvm-svn: 202238
2014-02-23[CMake] Resurrect mis-dropped dependency to ClangDriverOptions since r201842.NAKAMURA Takumi1-0/+3
llvm-svn: 201978
2014-02-21[CMake] Get rid of explicit dependencies to include/clang/*.inc and ↵NAKAMURA Takumi1-6/+0
introduce CLANG_TABLEGEN_TARGETS. This does; - clang_tablegen() adds each tblgen'd target to global property CLANG_TABLEGEN_TARGETS as list. - List of targets is added to LLVM_COMMON_DEPENDS. - all clang libraries and targets depend on generated headers. You might wonder this would be regression, but in fact, this is little loss. - Almost all of clang libraries depend on tblgen'd files and clang-tblgen. - clang-tblgen may cause short stall-out but doesn't cause unconditional rebuild. - Each library's dependencies to tblgen'd files might vary along headers' structure. It made hard to track and update *really optimal* dependencies. Each dependency to intrinsics_gen and ClangSACheckers is left as DEPENDS. llvm-svn: 201842
2014-02-05Add a CC1 option -verify-pchBen Langmuir1-0/+1
This option will: - load the given pch file - verify it is not out of date by stat'ing dependencies, and - return 0 on success and non-zero on error llvm-svn: 200884
2013-12-27Bury leaked pointers in a global array to silence a leak detector in ↵Kostya Serebryany1-1/+2
--disable-free mode Summary: This is an alternative to http://llvm-reviews.chandlerc.com/D2475 suggested by Chandler. Reviewers: chandlerc, rnk, dblaikie CC: cfe-commits, earthdok Differential Revision: http://llvm-reviews.chandlerc.com/D2478 llvm-svn: 198073
2013-12-10[CMake] clang/lib: Prune redundant dependencies.NAKAMURA Takumi1-3/+0
llvm-svn: 196864
2013-12-09[CMake] clang/lib: Satisfy dependencies to add *actually used* libraries on ↵NAKAMURA Takumi1-1/+7
target_link_libraries() and LLVM_LINK_COMPONENTS. I will prune redundant dependencies later. llvm-svn: 196800
2013-11-27Bring back a StringRef used in some build configurationsAlp Toker1-0/+2
This was removed in the great unused local cleanup of r195814. Adding cast-to-void to suppress unused variable warnings. Should fix certain builds like ARCMT. llvm-svn: 195872
2013-11-27Remove a whole lot of unused variablesAlp Toker1-1/+0
There are about 30 removed in this patch, generated by a new FixIt I haven't got round to submitting yet. llvm-svn: 195814
2013-11-13[objcmt] If the frontend option is frontend::MigrateSource then we don't ↵Argyrios Kyrtzidis1-20/+22
need to create the arcmt wrappers. llvm-svn: 194627
2013-10-07Remove -ast-dump-xml.Richard Smith1-1/+0
llvm-svn: 192131
2013-10-02Objective-C migrator. Simplify migrator option Fariborz Jahanian1-4/+1
processing in preparation for adding several more options. // rdar://15003157 llvm-svn: 191842
2013-08-28ObjectiveC migrator. This patch infers readonly properties for no-parameter Fariborz Jahanian1-1/+2
instance methods returning non-void. This will be quite noisy. So, it is placed under a new migrator flag -objcmt-migrate-readonly-property. llvm-svn: 189537
2013-08-22Fix dependencies now that the ARC migrator depends on the static analyzer.Jordan Rose1-1/+6
Thanks for pointing this out, Stephen. I think this is right now -- I attempted to try all four valid combinations with both the autoconf and CMake builds. See also LLVM changes to the configure script. llvm-svn: 189027
2013-08-07Indicate success for simple options when clang called with -cc1.Rafael Espindola1-3/+3
Patch by David Wiberg. llvm-svn: 187888
2013-07-09ObjC migrator: Add -objcmt-migrate-property to do propertyFariborz Jahanian1-2/+3
migration. Also, fixes an old bug where older migration flags were not being checked for properly. llvm-svn: 185948
2013-07-03With CLANG_ENABLE_STATIC_ANALYZER=0, link clang properly and skip clang-check.Jordan Rose1-3/+8
Previously, the CMake build still tried to link clang against the static analyzer libraries, even if CLANG_ENABLE_STATIC_ANALYZER was off. Furthermore, clang-check depends on the analyzer, so it should be disabled (in both CMake and configure builds). In theory, clang-check could be made to conditionally include analyzer support (like clang itself), but for now this at least gets a CMake ALL_BUILD working. Patch by Stephen Kelly, modified by me. llvm-svn: 185548
2013-06-14[Driver] Refactor clang driver to use LLVM's Option libraryReid Kleckner1-5/+5
The big changes are: - Deleting Driver/(Arg|Opt)* - Rewriting includes to llvm/Option/ and re-sorting - 'using namespace llvm::opt' in clang::driver - Fixing the autoconf build by adding option everywhere As discussed in the review, this change includes using directives in header files. I'll make follow up changes to remove those in favor of name specifiers. Reviewers: espindola Differential Revision: http://llvm-reviews.chandlerc.com/D975 llvm-svn: 183989
2013-03-27<rdar://problem/13509689> Introduce -module-file-info option that provides ↵Douglas Gregor1-0/+1
information about a particular module file. This option can be useful for end users who want to know why they ended up with a ton of different variants of the "std" module in their module cache. This problem should go away over time, as we reduce the need for module variants, but it will never go away entirely. llvm-svn: 178148
2013-01-06use early returns to simplify and de-nestSean Silva1-11/+9
llvm-svn: 171654
2012-12-13Dont use/link ARCMT, StaticAnalyzer and Rewriter to clang when the userRoman Divacky2-2/+59
specifies not to. Dont build ASTMatchers with Rewriter disabled and StaticAnalyzer when it's disabled. Without all those three, the clang binary shrinks (x86_64) from ~36MB to ~32MB (unstripped). llvm-svn: 170135
2012-12-04Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth1-4/+4
uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
2012-11-09PR14303: Add a NoDriverOption flag to those options which are not accepted byRichard Smith1-1/+4
the driver (the options defined in CC1Options.td) and exclude their help from "clang --help". llvm-svn: 167638
2012-09-01Split library clangRewrite into clangRewriteCore and clangRewriteFrontend.Ted Kremenek2-2/+3
This is similar to how we divide up the StaticAnalyzer libraries to separate core functionality to what is clearly associated with Frontend actions. llvm-svn: 163050
2012-08-31Make AnalyzerOptions a shared object between CompilerInvocation andTed Kremenek1-1/+1
AnalysisManager, allowing the StringMap of configuration values to be propagated. llvm-svn: 162978
2012-07-31Added -ast-list option to dump filterable AST decl node names.Alexander Kornienko1-0/+1
llvm-svn: 161040
2012-07-27clang/lib: [CMake] Update tblgen'd dependencies.NAKAMURA Takumi1-0/+2
llvm-svn: 160851
2012-06-21Remove a goofy CMake hack and use the standard CMake facilities toChandler Carruth1-5/+13
express library-level dependencies within Clang. This is no more verbose really, and plays nicer with the rest of the CMake facilities. It should also have no change in functionality. llvm-svn: 158888
2012-06-14Support -frewrite-includes as an option while preprocessing.David Blaikie1-2/+6
llvm-svn: 158460
2012-06-06Add a -rewrite-includes option, which is similar to -rewrite-macros, but ↵David Blaikie1-0/+1
only expands #include directives. Patch contributed by Lubos Lunak (l.lunax@suse.cz). Review by Matt Beaumont-Gay (matthewbg@google.com). llvm-svn: 158093
2012-05-02Fix cmake. Remaining two ClangCC1Options deps.Andrew Trick1-2/+1
llvm-svn: 155977
2012-05-01Unify Options.td and CC1Options.td, in a first step towards unifying the ↵James Molloy1-2/+2
serialization logic in Frontend and Driver. Reviewed by Eric, Doug and Chandler, and here: http://llvm.org/reviews/r/7/ llvm-svn: 155916
2012-04-13Remove the -cc1-level option "-pubnames-dump". Such things should stayDouglas Gregor1-1/+0
out of the tree and use the tooling infrastructure. llvm-svn: 154668
2012-03-27Introduce a -cc1-level option -pubnames-dump, which simply dumps theDouglas Gregor1-0/+1
list of identifiers that that 'public' names at the end of the translation unit, e.g., defined macros or identifiers with top-level names, in sorted order. Meant to support <rdar://problem/10921596>. llvm-svn: 153522
2012-03-06Add new code migrator support for migrating existing Objective-C code to useTed Kremenek1-1/+8
the new Objective-C NSArray/NSDictionary/NSNumber literal syntax. This introduces a new library, libEdit, which provides a new way to support migration of code that improves on the original ARC migrator. We now believe that most of its functionality can be refactored into the existing libraries, and thus this new library may shortly disappear. llvm-svn: 152141
2012-02-07Make use of const-correct ParseCommandLineOptionsDavid Blaikie1-1/+1
llvm-svn: 150000