aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend
AgeCommit message (Collapse)Author
2009-11-11Add DependencyOutputOptions to wrap -M... options, and propogate toDaniel Dunbar
CompilerInvocation and clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86880 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Move the ManagerRegistry to the Analysis library to resolve the layering ↵Chandler Carruth
violation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86863 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Add PreprocessorOutputOptions to CompilerInvocation, and move initialization toDaniel Dunbar
clang-cc/Options.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86828 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Add PreprocessorOutputOptions, for things like -dM, -C, -CC which control -EDaniel Dunbar
mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86827 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Allow TextDiagnosticPrinter to have optional ownership of its output stream.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86823 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Fix display of "ANALYZE" statements in AnalysisConsumer by correctly ↵Ted Kremenek
resetting the flag indicating that the current Decl* has not yet been displayed. Also move this out of AnalysisManager, since AnalysisManager should not handle text output to the user. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Redo how PCH handles its implicit include. Instead of treating this specially inDaniel Dunbar
the front-end (as far as the preprocessor goes), follow the usual logic of inserting the (original include path) name into the predefines buffer. This pushes the responsibility for handling this to PCH instead of the front-end. In PCH this requires being a little more clever when we diff the predefines buffers. Neither of these solutions are particularly great, I think what we eventually should do is something like gcc where we insert a special marker to indicate the PCH file, but then run the preprocessor as usual. This would be clearer and would allow us to drop the overly clever predefines handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86806 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11More StringRef simplification to PCHValidator::ReadPredefinesBuffer.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Rewrite splitLines using StringRef; this is much simpler, and also now avoidsDaniel Dunbar
tons of std::string trashing. I plan to move this and other fun string munging utilities to a StringRefExtras.h at some point if no one beats me to it. On a synthetic benchmark on x86_64, llvm-gcc actually generates code thats 10% faster using the StringRef version. gcc miscompiles the synthetic benchmark, which I'm crossing my fingers and hoping won't happen here. clang compiles the sythetic benchmark correctly (wootness), but the StringRef version is slower. Silly clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Introduce a new representation for template templateDouglas Gregor
parameters. Rather than storing them as either declarations (for the non-dependent case) or expressions (for the dependent case), we now (always) store them as TemplateNames. The primary change here is to add a new kind of TemplateArgument, which stores a TemplateName. However, making that change ripples to every switch on a TemplateArgument's kind, also affecting TemplateArgumentLocInfo/TemplateArgumentLoc, default template arguments for template template parameters, type-checking of template template arguments, etc. This change is light on testing. It should fix several pre-existing problems with template template parameters, such as: - the inability to use dependent template names as template template arguments - template template parameter default arguments cannot be instantiation However, there are enough pieces missing that more implementation is required before we can adequately test template template parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11StringRefify some PCH interfaces.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86775 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Replace startsWith functions with StringRef.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86774 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Add Diagnostic::Report method for reporting diagnostics without a location.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86760 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10PreprocessorOptions: Get rid of unnecessary 'isPTH' flag for include entries.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Localize -disable-llvm-optzns handling to BackendConsumer::CreatePasses.Daniel Dunbar
- This is conceptually better since the only thing we want this option to do is preserve the internal module as constructed by IRgen, before running any passes. - This also fixes bugs in -disable-llvm-optzns handling with regards to debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86691 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Switch to getFileOrSTDIN().Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86632 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Privatize InitHeaderSearch, this functionality is only exposed viaDaniel Dunbar
ApplyHeaderSearchOptions now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Add support for cdecl attribute. (As far as I know, it doesn't affect CodeGenEli Friedman
unless we start implementing command-line switches which override the default calling convention, so the effect is mostly to silence unknown attribute warnings.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86571 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08Add a checker for CWE-467: Use of sizeof() on a Pointer Type.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86464 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Switch clang-cc to use ApplyHeaderSearchOptions, and fix a thinko.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86341 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Add HeaderSearchOptions class, for packaging the information needed toDaniel Dunbar
initialize HeaderSearch. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Lift InitHeaderSearch::AddEnvVarPaths logic higher.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86337 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Formatting fixes.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86336 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Rename PreprocessorInitOptions to PreprocessorOptions for consistency, and fixDaniel Dunbar
filenames. Also, move InitializePreprocessor to Utils.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86335 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Eliminate tablsJohn Thompson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86183 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05clean up integer preprocessor type definitions, patch by Ken Dyck!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86177 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Adding -fshort-wchar option.John Thompson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86167 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Add Ubuntu 9.10 libstdc++ install location.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86142 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Replace DiagnosticClient::setLangOptions with {Begin,End}SourceFile, and clarifyDaniel Dunbar
invariants (diagnostics with source informations must occur between {Begin,End}SourceFile). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86113 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Convert CreateAnalysisConsumer and friends to just take a const ↵Daniel Dunbar
Preprocessor&, and simplify. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86112 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Remove unused SetPreprocessor method.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86111 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Acting on Daniel's nagging, remove PathDiagnosticClientFactory() andTed Kremenek
migrate work in the destructors of PathDiagnosticClients from their destructors to FlushReports(). The destructors now currently call FlushReports(); this will be fixed in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86108 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04Kill PreprocessorFactory, which was both morally repugnant and totally unused.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86076 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04InitializePreprocessor cannot fail.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04Move -undef flag into PreprocessorInitOptionsDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86047 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04Preserve type source information in sizeof/alignof expressions, and pass itJohn McCall
through to indexing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86018 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-04Factor out a diagnostic options class.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86010 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-03Implement support for the -undef command line option, patch byChris Lattner
Roman Divacky! PR5363 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85932 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-03Fix buffer overflow in PrintMacroDefinition() by inverting the check to see ↵Ted Kremenek
if the target buffer needs to be resized. Fixes <rdar://problem/7255377>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-02Remove unused header.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85828 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-02clean up namespace.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85826 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-30Add C++ include paths for Exherbo. Patch by Daniel Mierswa!Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85588 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-29Track source information for template arguments and template specializationJohn McCall
types. Preserve it through template instantiation. Preserve it through PCH, although TSTs themselves aren't serializable, so that's pretty much meaningless. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-29simplify intmax setup, patch by Ken Dyck!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27Rename FunctionDecl::isInline/setInline toDouglas Gregor
FunctionDecl::isInlineSpecified/setInlineSpecified. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85305 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27Split AddDefaultSystemIncludePaths into C, C++ and framework specific functions.Rafael Espindola
The user visible changes are: *) Frameworks are only searched on OS X *) The Cygwin c++ headers are now marked as c++ aware. I am almost sure that not marking them was a bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85240 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-25Audit the code for places where it is assumed that every base specifier ↵Sebastian Redl
refers to a RecordType. Add assertions or conditions as appropriate. This fixes another crash in the Apache stdlib vector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-24Preserve type source information in TypedefDecls. Preserve it acrossJohn McCall
template instantiation. Preserve it through PCH. Show it off to the indexer. I'm healthily ignoring the vector type cases because we don't have a sensible TypeLoc implementation for them anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84994 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-23Remove OriginalTypeParmDecl; the original type is the one specifiedJohn McCall
in the DeclaratorInfo, if one is present. Preserve source information through template instantiation. This is made more complicated by the possibility that ParmVarDecls don't have DIs, which is possibly worth fixing in the future. Also preserve source information for function parameters in ObjC method declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-23Eliminate QualifiedDeclRefExpr, which captured the notion of aDouglas Gregor
qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84962 91177308-0d34-0410-b5e6-96231b3b80d8