summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Unbreak CGFunctionInfo::Profile method and reenable caching of ABIDaniel Dunbar2009-02-052-3/+2
| | | | | | information. llvm-svn: 63799
* Overhaul BugReporter interface and implementation. The new interface cleans upTed Kremenek2009-02-049-702/+569
| | | | | | | | | | | | | | | | | | | | | the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes, and BugTypes are owned by the BugReporter object. The major functionality change in this patch is that reports are not immediately emitted by a call to BugReporter::EmitWarning (now called EmitReport), but instead of queued up in report "equivalence classes". When BugReporter::FlushReports() is called, it emits one diagnostic per report equivalence class. This provides a nice cleanup with the caching of reports as well as enables the BugReporter engine to select the "best" path for reporting a path-sensitive bug based on all the locations in the ExplodedGraph that the same bug could occur. Along with this patch, Leaks are now coalesced into a common equivalence class by their allocation site, and the "summary" diagnostic for leaks now reports the allocation site as the location of the bug (this may later be augmented to also provide an example location where the leak occurs). llvm-svn: 63796
* Chase LLVM TOT in circles (i.e., revert r63773 to match revert ofDaniel Dunbar2009-02-041-3/+6
| | | | | | r63765). llvm-svn: 63795
* Add ABIArgInfo::dump()Daniel Dunbar2009-02-042-0/+33
| | | | llvm-svn: 63794
* Implement semantic analysis for the GNU flexible array initializationDouglas Gregor2009-02-042-31/+133
| | | | | | | | | | | | | extension. The interaction with designated initializers is a bit... interesting... but we follow GNU's lead and don't permit too much crazy code in this area. Also, make the "excess initializers" error message a bit more informative. Addresses PR2561: http://llvm.org/bugs/show_bug.cgi?id=2561 llvm-svn: 63785
* Add support for blocks with explicit return types.Mike Stump2009-02-045-30/+103
| | | | llvm-svn: 63784
* Use correct signature for calling enumeration mutation function.Daniel Dunbar2009-02-041-1/+1
| | | | llvm-svn: 63782
* Temporarily disable caching of ABI results; this is going horriblyDaniel Dunbar2009-02-041-1/+3
| | | | | | wrong in some cases. llvm-svn: 63780
* Implement taking address of member functions, including overloaded ones.Sebastian Redl2009-02-042-7/+36
| | | | llvm-svn: 63779
* Add -femit-all-decls codegen option.Daniel Dunbar2009-02-041-1/+1
| | | | | | | | - Emits all declarations, even unused (static) ones. - Useful when doing minimization of codegen problems (otherwise problems localized to a static function aren't minimized well). llvm-svn: 63776
* Add asserts that the function signature matches the other arguments provideDaniel Dunbar2009-02-042-0/+6
| | | | | | to CGCall functions. llvm-svn: 63775
* (llvm up) Update for intrinsic lookup changes.Daniel Dunbar2009-02-041-6/+3
| | | | llvm-svn: 63773
* Some early code for objc2's nonfragile abi messaging.Fariborz Jahanian2009-02-041-12/+93
| | | | llvm-svn: 63770
* Patch fixes messaging for GNU runtime.Fariborz Jahanian2009-02-041-58/+36
| | | | | | Patch by David Chisnall llvm-svn: 63769
* Fix PR3464 by searching for headers from the predefinesChris Lattner2009-02-041-2/+13
| | | | | | buffer as if the #include happened from the main file. llvm-svn: 63764
* Improve documentation for Sema::getTypeName. Also, it's return type isDouglas Gregor2009-02-042-2/+12
| | | | | | DeclTy*, not TypeTy*. llvm-svn: 63756
* Basic representation of C++ class templates, from Andrew Sutton.Douglas Gregor2009-02-0418-77/+311
| | | | llvm-svn: 63750
* Some name-lookup-related fixes, from Piotr Rak!Douglas Gregor2009-02-0413-154/+136
| | | | | | | | | | | | | - Changes Lookup*Name functions to return NamedDecls, instead of Decls. Unfortunately my recent statement that it will simplify lot of code, was not quite right, but it simplifies some... - Makes MergeLookupResult SmallPtrSet instead of vector, following Douglas suggestions. - Adds %qN format for printing qualified names to Diagnostic. - Avoids searching for using-directives in Scopes, which are not DeclScope, during unqualified name lookup. llvm-svn: 63739
* Fix <rdar://problem/6552648> error: redefinition of ↵Steve Naroff2009-02-041-12/+27
| | | | | | | | 'XCElementAnchorDelegate' as different kind of symbol. At first glance, this looked like a recent regression (possibly created by http://llvm.org/viewvc/llvm-project?view=rev&revision=63354, which was the only recent change to this section of Sema::ActOnStartClassInterface()). After more investigation, it looks like an edge case bug that we didn't cover in our tests. llvm-svn: 63738
* Diagnose ambiguities in getTypeName. Fixes ↵Douglas Gregor2009-02-047-18/+21
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=3475 llvm-svn: 63737
* Bring operator name lookup (as required for C++ operator overloading)Douglas Gregor2009-02-044-63/+49
| | | | | | | into the general name-lookup fold. This cleans up some ugly, not-quite-working code in the handling of operator overloading. llvm-svn: 63735
* Fix our semantic analysis ofDouglas Gregor2009-02-047-100/+119
| | | | | | | | | | | | | | | | | | | | | unqualified-id '(' in C++. The unqualified-id might not refer to any declaration in our current scope, but declarations by that name might be found via argument-dependent lookup. We now do so properly. As part of this change, CXXDependentNameExpr, which was previously designed to express the unqualified-id in the above constructor within templates, has become UnresolvedFunctionNameExpr, which does effectively the same thing but will work for both templates and non-templates. Additionally, we cope with all unqualified-ids, since ADL also applies in cases like operator+(x, y) llvm-svn: 63733
* Handle demotion of coerced arguments (as in void a(x) short x; { ... }).Daniel Dunbar2009-02-041-1/+7
| | | | llvm-svn: 63726
* Implement handling of file entry/exit notifications from GNUChris Lattner2009-02-042-8/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | line markers, including maintenance of the virtual include stack. For something like this: # 42 "bar.c" 1 # 142 "bar2.c" 1 #warning zappa # 92 "bar.c" 2 #warning gonzo # 102 "foo.c" 2 #warning bonkta we now produce these three warnings: #1: In file included from foo.c:3: In file included from bar.c:42: bar2.c:143:2: warning: #warning zappa #warning zappa ^ #2: In file included from foo.c:3: bar.c:92:2: warning: #warning gonzo #warning gonzo ^ #3: foo.c:102:2: warning: #warning bonkta #warning bonkta ^ llvm-svn: 63722
* make getFileCharacteristic linetable aware. line markers that Chris Lattner2009-02-041-0/+32
| | | | | | play around with the 'is system header' bit now function correctly. llvm-svn: 63720
* propagate linemarker flags down into the the line table, currentlyChris Lattner2009-02-042-10/+93
| | | | | | ignoring include stack push/pop info though. llvm-svn: 63719
* replace gimpy linear search with svelte binary search ;-)Chris Lattner2009-02-041-7/+17
| | | | llvm-svn: 63717
* Remove dead code.Zhongxing Xu2009-02-041-11/+1
| | | | llvm-svn: 63715
* make my atrocious linear search at least search in the order that isChris Lattner2009-02-041-5/+4
| | | | | | more likely to hit. llvm-svn: 63714
* add commentChris Lattner2009-02-041-1/+1
| | | | llvm-svn: 63712
* add the difference in the line marker phys line number and theChris Lattner2009-02-041-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | query point to the returned presumed location. We now produce: foo.h:92:2: warning: #warning blarg! #warning blarg! ^ foo.h:93:2: warning: #warning blarg! #warning blarg! ^ foo.h:94:2: warning: #warning blarg! #warning blarg! ^ for: #line 92 "foo.h" #warning blarg! #warning blarg! #warning blarg! blarg indeed! llvm-svn: 63710
* add really really trivial #line support, where #line now makes every Chris Lattner2009-02-041-8/+54
| | | | | | | | | | | | | | | | | | | | location below it report as coming from the #line location. For example, with: #line 92 "foo.h" #warning blarg! #warning blarg! we now emit: foo.h:92:2: warning: #warning blarg! #warning blarg! ^ foo.h:92:2: warning: #warning blarg! #warning blarg! ^ llvm-svn: 63709
* lower the interface to getLineNumber like we did forChris Lattner2009-02-045-27/+31
| | | | | | | | getColumnNumber. This fixes a FIXME in SourceManager::getPresumedLoc because we now just decompose the sloc once. llvm-svn: 63701
* make SM::getColumnNumber take a predecomposed FileID/offset, whichChris Lattner2009-02-045-37/+37
| | | | | | | | makes it clear to clients that they have to pick an instantiation or spelling location before calling it and allows optimization based on that. llvm-svn: 63698
* Update passing of _Bool values to match what function was declared to take.Daniel Dunbar2009-02-041-3/+3
| | | | llvm-svn: 63697
* Change construction of common ObjC functions to use CGCallDaniel Dunbar2009-02-041-57/+41
| | | | | | | | | infrastructure to construct function type. - For consistencty, we should probably always use this to construct function types, but these are absolutely necessary to ensure that we can emit calls to these functions. llvm-svn: 63695
* build per-fid linetable entries.Chris Lattner2009-02-041-12/+39
| | | | llvm-svn: 63694
* Initial implementation of argument dependent lookup (a.k.a. ADL,Douglas Gregor2009-02-044-40/+430
| | | | | | | | | | | | a.k.a. Koenig lookup) in C++. Most of the pieces are in place, but for two: - In an unqualified call g(x), even if the name does not refer to anything in the current scope, we can still find functions named "g" based on ADL. We don't yet have this ability. - ADL will need updating for friend functions and templates. llvm-svn: 63692
* Some function stub added for new abi messaging.Fariborz Jahanian2009-02-041-3/+36
| | | | llvm-svn: 63691
* Use CGCall infrastructure to call enumeration mutation function.Daniel Dunbar2009-02-031-1/+7
| | | | llvm-svn: 63685
* Several new declarations for objc2 nonfragileFariborz Jahanian2009-02-031-0/+115
| | | | | | abi messaging. llvm-svn: 63684
* Fix return type for calls to objc_setProperty.Daniel Dunbar2009-02-031-1/+5
| | | | llvm-svn: 63683
* Use ConvertTypeForMem when creating alloca for scalar argument.Daniel Dunbar2009-02-031-1/+1
| | | | llvm-svn: 63681
* Add CodeGenFunction::ConvertTypeForMem forwarding function.Daniel Dunbar2009-02-032-0/+5
| | | | llvm-svn: 63678
* more plumbing for #line propagation. Use happy bit #3 Chris Lattner2009-02-031-1/+21
| | | | | | out of FileInfo :) llvm-svn: 63672
* stub out basic #line handling calls.Chris Lattner2009-02-032-5/+12
| | | | llvm-svn: 63667
* GNUStep fast enumeration.Fariborz Jahanian2009-02-031-1/+3
| | | | | | Patch by David Chisnall. llvm-svn: 63666
* silence some warnings.Chris Lattner2009-02-031-2/+2
| | | | llvm-svn: 63662
* Allow taking the address of data members, resulting in a member pointer.Sebastian Redl2009-02-035-27/+104
| | | | | | Pointers to functions don't work yet, and pointers to overloaded functions even less. Also, far too much illegal code is accepted. llvm-svn: 63655
* x86_64 ABI: Initial implementation of ABI compliant parameter passing.Daniel Dunbar2009-02-031-18/+119
| | | | | | | | | | | - Now only 27/500 failures on ABITest single argument tests; from 350/500. :) - As with return types, a large percentage of these are likely to be gcc bugs, not yet reviewed. Also, fix bug in handling of Ignore ABI type in argument lists. llvm-svn: 63654
OpenPOWER on IntegriCloud