aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend
AgeCommit message (Collapse)Author
2010-02-27Debian sid moved these headers into /4.4 and left /4.4.3 as a symlink. Update.Nick Lewycky
Also, add support for 32-bit x86 Debian sid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97347 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Revert 97324. Chris says this cleanup could hurt -E performance.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97331 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Simplify code.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97324 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Add an overload of Preprocessor::getSpelling which takes a SmallVector andBenjamin Kramer
returns a StringRef. Use it to simplify some repetitive code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97322 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27When given unsaved files in clang_createTranslationUnitFromSourceFile,Douglas Gregor
copy the source buffers provided rather than referencing them directly, so that the caller can free those buffers immediately after calling clang_createTranslationUnitFromSourceFile(). Otherwise, we risk hitting those buffers later (when building source ranges, forming diagnostics, etc.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Prevent rewriter crash when variable type is missing.Fariborz Jahanian
Fixes radar 7692183. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97281 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Minor cleanup of the rewriter.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97280 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Removed some unused code in rewriter.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Fix rewriting of byref variables in nested blocks.Fariborz Jahanian
Fixes radar 7692350. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Rewriting of imported variable from outerFariborz Jahanian
blocks's argument in the inner block requires special treatment. Fixes radar 7692419. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97244 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Support rewriting of property synthesis with retain/copyFariborz Jahanian
attributes. Fixes radar 7214439. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Move ~CodeGenAction out-of-line.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97166 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Update CMake makefilesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97113 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Frontend: Add CodeGenAction::takeModule().Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Frontend: Pull CodeGenAction out more, and eliminate CreateBackendConsumer.Daniel Dunbar
This is the way I would like to move the frontend function towards -- distinct pieces of functionality should be exposed only via FrontendAction implementations which have clean and relatively-stable APIs. This also isolates the surface area in clang which depends on LLVM CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97110 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Add TextDiagnosticPrinter::setPrefix, for adding a string to prefix diagnosticDaniel Dunbar
messages with. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-24Implement nasty rewriting of nested blocks when innerFariborz Jahanian
blocks use variables not used in any of the outer blocks. (Fixes radar 7682149). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97073 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-24Fix rewriting of a method when return type isFariborz Jahanian
a block pointer type. Fixes radar 7682149. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97008 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Add support for the weakref attribute. We still produce "alias weak" as ↵Rafael Espindola
llvm-gcc does, but are more strict on what uses of weakref we accept. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96992 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Fixes a rewriting of qualified-id type which exposed a biggerFariborz Jahanian
rewriting problem. Fixes radar 7680953. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22Fixes a rewriting of byref variable when its initializer isFariborz Jahanian
itself rewritten. Radar 7669784. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-21Eliminate the default arguments to ASTContext::getFunctionType(),Douglas Gregor
fixing up a few callers that thought they were propagating NoReturn information but were in fact saying something about exception specifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96766 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-21Implement PCH support for C++ namespaces.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96738 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Revert: "Change InitListExpr to allocate the array for holding references"Ted Kremenek
This was causing buildbot breakage. This reverts commit d46e952cc8cb8d9eed8657d9a0b267910a0f745a. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96652 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Re-introduce the ctor/dtor alias optimization, this time hidden behind aJohn McCall
command-line option which defaults off. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96649 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Change InitListExpr to allocate the array for holding referencesTed Kremenek
to initializer expressions in an array allocated using ASTContext. This plugs a memory leak when ASTContext uses a BumpPtrAllocator to allocate memory for AST nodes. In my mind this isn't an ideal solution; it would be nice to have a general "vector"-like class that allocates memory using ASTContext, but whose guts could be separated from the methods of InitListExpr itself. I haven't gone and taken this approach yet because it isn't clear yet if we'll eventually want an alternate solution for recylcing memory using by InitListExprs as we are constructing the ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Patch removes IVars list from ObjCInterfaceDecl andFariborz Jahanian
instead relies on their DeclContext for iteration, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96638 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Teach ASTUnit to keep track of temporary files, then delete them whenDouglas Gregor
the ASTUnit itself is destroyed. Fixes <rdar://problem/7649385>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96628 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Rework how CIndex handles diagnostics. Rather than using a callback,Douglas Gregor
we attach diagnostics to translation units and code-completion results, so they can be queried at any time. To facilitate this, the new StoredDiagnostic class stores a diagnostic in a serializable/deserializable form, and ASTUnit knows how to capture diagnostics in this stored form. CIndex's CXDiagnostic is a thin wrapper around StoredDiagnostic, providing a C interface to stored or de-serialized diagnostics. I've XFAIL'd one test case temporarily, because currently we end up storing diagnostics in an ASTUnit that's never returned to the user (because it contains errors). I'll introduce a temporary fix for this soon; the real fix will be to allow us to return and query invalid ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96592 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18__typeof should be able to handle block pointer types whenFariborz Jahanian
rewriting. Fixes radar 7659483. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96549 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Sort cases.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96536 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Add 'ns_returns_not_retained' and 'cf_returns_not_retained' attributes toTed Kremenek
match 'ns_returns_retained' and 'cf_returns_retained' respectively. These are not yet hooked up to the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96535 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Add IBAction attribute to keep the IBOutlet attribute company.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96447 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16when a diagnostic is an extension and has no other -W flag, Chris Lattner
indicate that it was enabled with -pedantic so people know why they're getting them: $ printf "int x;" | clang -xc - -pedantic <stdin>:1:7: warning: no newline at end of file [-pedantic] int x; ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96365 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Minor rewriter cleanup and a test for a block rewriting bug.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Fix rewriter bug when function call inside block with block parameter Fariborz Jahanian
causes C++ compile error (radar 7651312). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96352 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16ASTUnit: Constant fold UseBumpAllocator to true, we don't care to support ↵Daniel Dunbar
this as an argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96316 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16ASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96315 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16CompilerInstance: Move LLVMContext member out of constructor.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96314 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Don't import __va_list_tag or __builtin_va_list when mergingDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96299 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15Tell ASTMerge to merge every declaration it sees, rather than cherry-picking ↵Douglas Gregor
those declarations that we know will work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96280 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15Fix a broken rewritin of @implementation keyword.Fariborz Jahanian
(fixes radar 7649577). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96270 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Change LLVMConventionsChecker to accept an entire translation unit insteadTed Kremenek
of operating on each code decl. This exposes two flaws in AnalysisConsumer that should eventually be fixed: (1) It is not possible to associate multiple "actions" with a single command line argument. This will require the notion of an "analysis" group, and possibly tablegen support. (although eventually we want to support dynamically loading analyses as well) (2) AnalysisConsumer may not actually be scanning the declarations in namespaces. We'll experiment first in LLVMConventionsChecker before changing the behavior in AnalysisConsumer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96183 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Rework translation unit actions to actually take an entire translation unitTed Kremenek
as imput. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96182 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Pass StringRefs to InsertText/ReplaceText in RewriteObjC and remove a ton of ↵Benjamin Kramer
unnecessary length arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96164 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Add new static analyzer for checking LLVM coding conventions: ↵Ted Kremenek
-analyzer-check-llvm-conventions Currently these checks are intended to be largely syntactical, but may get more sophisticated over time. As an initial foray into this brave new world, emit a static analyzer warning when binding a temporary 'std::string' to an 'llvm::StringRef' where the lifetime of the 'std::string' does not outlive the 'llvm::StringRef'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96147 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Two changes to AnalysisConsumer::HandleTopLevelSingleDecl():Ted Kremenek
(1) Since CXXMethodDecl subclasses FunctionDecl (and CXXDestructorDecl and CXXConversion subclass CXXMethodDecl), refactor switch statement to handle them all in one spot. (2) Use 'DeclarationName::getAsString()' to handle all functions that don't have simple identifiers (fixing a null dereference when scanning for specific functions). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96146 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13add support for t Fedora 12 (February 2010), patch byChris Lattner
Dyachenko Dmitry. Our system is "not so elegant" here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Raise the responsibility for passing -disable-llvm-verifier in NDEBUG buildsJohn McCall
to the driver, and support it in CodeGenOptsToArgs(). Note that this changes the default behavior of clang -cc1 to always run the verifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96077 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12Add an option to disable the LLVM verifier pass (which is still alwaysJohn McCall
disabled in NDEBUG builds). The option applies only to -cc1 invocations and is: -disable_llvm_verifier git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96046 91177308-0d34-0410-b5e6-96231b3b80d8