summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Encapsulate "an array of TemplateArgumentLocs and two angle bracket ↵John McCall2009-11-2316-475/+299
| | | | | | | | | | locations" into a new class. Use it pervasively throughout Sema. My fingers hurt. llvm-svn: 89638
* Teach CodeGenFunction::EmitDecl to ignore Using and UsingShadow decls.Daniel Dunbar2009-11-231-2/+6
| | | | llvm-svn: 89633
* x86_64, PR5582: Layout bases for C++ records.Daniel Dunbar2009-11-221-1/+27
| | | | | | | - Ideally we would have an single iteration interface for this, but this works for now. llvm-svn: 89632
* Recognize .hpp as a C++ header.Daniel Dunbar2009-11-221-0/+1
| | | | llvm-svn: 89630
* Add clang -cc1 parsing of analyzer options.Daniel Dunbar2009-11-222-2/+71
| | | | llvm-svn: 89629
* Fix LookupResult's sanity-check to handle shadow decls.John McCall2009-11-221-1/+2
| | | | llvm-svn: 89624
* Change CheckDeadStores to use Expr::isNullPointerConstant, which will ↵Ted Kremenek2009-11-221-6/+5
| | | | | | | | correctly determine whether an expression is a null pointer constant. Patch by Kovarththanan Rajaratnam! llvm-svn: 89621
* Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.Anders Carlsson2009-11-221-2/+3
| | | | llvm-svn: 89613
* When laying out bitfields, make sure that the data size is always aligned to ↵Anders Carlsson2009-11-222-11/+28
| | | | | | a byte. This fixes PR5580. llvm-svn: 89611
* Move bit-field layout out into a separate function. No functionality change.Anders Carlsson2009-11-222-69/+87
| | | | llvm-svn: 89604
* Define SIG_ATOMIC_MIN and SIG_ATOMIC_MAX in terms of __SIG_ATOMIC_WIDTH__.Ken Dyck2009-11-221-2/+2
| | | | llvm-svn: 89598
* Define __SIG_ATOMIC_WIDTH__ for use in stdint.h.Ken Dyck2009-11-221-0/+1
| | | | llvm-svn: 89597
* Undefined compound assignment result is checked in ↵Zhongxing Xu2009-11-221-9/+0
| | | | | | UndefinedAssignmentChecker. So this check is redundant. llvm-svn: 89592
* Remove invalid comments. The result is undefined only when operands are ↵Zhongxing Xu2009-11-221-2/+0
| | | | | | undefined. llvm-svn: 89591
* Save and restore the HasGen flag in MallocChecker.Zhongxing Xu2009-11-221-0/+1
| | | | llvm-svn: 89590
* Don't include a dead header.Benjamin Kramer2009-11-221-1/+0
| | | | llvm-svn: 89587
* Remove UndefinedAssignmentChecker's header.Zhongxing Xu2009-11-223-3/+21
| | | | llvm-svn: 89585
* If a C++ qualified id is followed by a postfix suffix, it is never the directJohn McCall2009-11-222-1/+22
| | | | | | | | | | | | | | operand of an addressof operator, and so we should not treat it as an abstract member-pointer expression and therefore suppress the implicit member access. This is really a well-formedness constraint on expressions: a DeclRefExpr of a FieldDecl or a non-static CXXMethodDecl (or template thereof, or unresolved collection thereof) should not be allowed in an arbitrary location in the AST. Arguably it shouldn't be allowed anywhere and we should have a different expr node type for this. But unfortunately we don't have a good way of enforcing this kind of constraint right now. llvm-svn: 89578
* Reorganize the intermediate BuildDeclarationNameExpr routines again.John McCall2009-11-223-87/+82
| | | | llvm-svn: 89575
* Consider a FunctionTemplate to be an overload all on its lonesome. TrackJohn McCall2009-11-227-78/+124
| | | | | | this information through lookup rather than rederiving it. llvm-svn: 89570
* Support emitting aggregate class initializers. Fixes PR5581.Anders Carlsson2009-11-211-1/+1
| | | | llvm-svn: 89569
* This patch implements objective-c's 'SEL' type as a built-inFariborz Jahanian2009-11-218-22/+27
| | | | | | | | | | | | | | | | | | type and fixes a long-standing code gen. crash reported in at least two PRs and a radar. (radar 7405040 and pr5025). There are couple of remaining issues that I would like for Ted. and Doug to look at: Ted, please look at failure in Analysis/MissingDealloc.m. I have temporarily added an expected-warning to make the test pass. This tests has a declaration of 'SEL' type which may not co-exist with the new changes. Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp. I think the changes which I have ifdef'ed out are correct. They need be considered for in a few Indexer/PCH test cases. llvm-svn: 89561
* Make FixedAddressChecker and experimental check; it currently produces a ton ↵Ted Kremenek2009-11-212-1/+2
| | | | | | of false positives when analyzing some projects (e.g., Wine). llvm-svn: 89560
* Overload resolution doesn't decide whether to do ADL or not anymore; stoppingJohn McCall2009-11-212-14/+5
| | | | | | threading that state. llvm-svn: 89557
* Mangler: Sketch mangling for TemplateArgument::Declaration kind.Daniel Dunbar2009-11-211-27/+32
| | | | | | - Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522). llvm-svn: 89556
* Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle.Daniel Dunbar2009-11-213-44/+49
| | | | | | | | - Sometimes we have to mangle things we wouldn't normally (e.g., because they appear in a template expression). - This also tidies up the predicate to be more obvious what is getting mangled. llvm-svn: 89555
* Mangler: Strengthen invariants, MangleContext::mangleName should only be ↵Daniel Dunbar2009-11-211-15/+12
| | | | | | called on var or function decls. llvm-svn: 89554
* Mangler: Inline a bunch of functions into their sole caller, not that I ↵Daniel Dunbar2009-11-211-106/+56
| | | | | | don't love typing for typings sake, but... llvm-svn: 89553
* DeclPrinter: Indent access specifiers.Daniel Dunbar2009-11-211-3/+6
| | | | llvm-svn: 89552
* Remove dead variable.Daniel Dunbar2009-11-211-1/+0
| | | | llvm-svn: 89551
* Mangler: Split isStdNamespace for when the caller already has a NamespaceDecl.Daniel Dunbar2009-11-211-5/+6
| | | | llvm-svn: 89550
* IRgen: Eliminate CXXNameMangler::mangleCXX{C,D}tor.Daniel Dunbar2009-11-211-24/+10
| | | | llvm-svn: 89549
* IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into,Daniel Dunbar2009-11-216-96/+67
| | | | | | | instead of requiring clients to make a raw_svector_ostream, which is just an implementation detail. llvm-svn: 89548
* Sink free mangle* methods into MangleContext.Daniel Dunbar2009-11-216-239/+234
| | | | llvm-svn: 89547
* Add 1+2 consts.Daniel Dunbar2009-11-211-1/+1
| | | | llvm-svn: 89546
* Delete trailing space.Daniel Dunbar2009-11-211-85/+85
| | | | llvm-svn: 89545
* "Incremental" progress on using expressions, by which I mean totally rippingJohn McCall2009-11-2115-451/+583
| | | | | | | | | | | | | | | | | | | | | | into pretty much everything about overload resolution in order to wean BuildDeclarationNameExpr off LookupResult::getAsSingleDecl(). Replace UnresolvedFunctionNameExpr with UnresolvedLookupExpr, which generalizes the idea of a non-member lookup that we haven't totally resolved yet, whether by overloading, argument-dependent lookup, or (eventually) the presence of a function template in the lookup results. Incidentally fixes a problem with argument-dependent lookup where we were still performing ADL even when the lookup results contained something from a block scope. Incidentally improves a diagnostic when using an ObjC ivar from a class method. This just fell out from rewriting BuildDeclarationNameExpr's interaction with lookup, and I'm too apathetic to break it out. The only remaining uses of OverloadedFunctionDecl that I know of are in TemplateName and MemberExpr. llvm-svn: 89544
* Added rudimentary C++0x attribute support.Alexis Hunt2009-11-2119-136/+616
| | | | | | | | | | | | | | The following attributes are currently supported in C++0x attribute lists (and in GNU ones as well): - align() - semantics believed to be conformant to n3000, except for redeclarations and what entities it may apply to - final - semantics believed to be conformant to CWG issue 817's proposed wording, except for redeclarations - noreturn - semantics believed to be conformant to n3000, except for redeclarations - carries_dependency - currently ignored (this is an optimization hint) llvm-svn: 89543
* Fix refacto, gcc's cc1 needs to see --output-pch=, which is not just an aliasDaniel Dunbar2009-11-211-1/+1
| | | | | | for -output-pch=. llvm-svn: 89534
* Implement C++ [temp.param]p2 correctly, looking ahead when we see aDouglas Gregor2009-11-211-5/+35
| | | | | | | "typename" parameter to distinguish between non-type and type template parameters. Fixes the actual bug in PR5559. llvm-svn: 89532
* Restructure DereferenceChecker slightly to handle caching out when we would ↵Ted Kremenek2009-11-211-19/+22
| | | | | | report a null dereference more than once. llvm-svn: 89526
* Pull BadCallChecker int UndefinedArgChecker, and have UndefinedArgChecker ↵Ted Kremenek2009-11-216-237/+191
| | | | | | also handled undefined receivers in message expressions. llvm-svn: 89524
* Add SigAtomicType to TargetInfo, Needed for MSP and PIC Targets, Credit to ↵Edward O'Callaghan2009-11-212-0/+3
| | | | | | Ken Dyck. llvm-svn: 89520
* More checker refactoring. Passing undefined values in a message expression ↵Ted Kremenek2009-11-213-65/+34
| | | | | | is now handled by UndefinedArgChecker. llvm-svn: 89519
* Revised Win32 include path to search highest version in registry, plus ↵John Thompson2009-11-211-55/+109
| | | | | | platform SDK path llvm-svn: 89517
* Checkpoint current work. WIP.Mike Stump2009-11-202-8/+126
| | | | llvm-svn: 89513
* Cope with extraneous "template" keyword when providing an out-of-lineDouglas Gregor2009-11-205-9/+15
| | | | | | definition of a member template (or a member thereof). Fixes PR5566. llvm-svn: 89512
* Driver: Add clang -cc1 dependency output options parsing.Daniel Dunbar2009-11-201-3/+10
| | | | llvm-svn: 89508
* Switch CompilerInvocation::CreateFromArgs to take const char** arguments ↵Daniel Dunbar2009-11-201-11/+6
| | | | | | until Driver itself switches to StringRef. llvm-svn: 89503
* Fix refactoro, clang-cc wasn't properly reporting errors when opening an ↵Daniel Dunbar2009-11-201-5/+5
| | | | | | output file failed. llvm-svn: 89502
OpenPOWER on IntegriCloud