summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Wire up attributes 'ns_consumed' and 'cf_consumed' in the static analyzer's ↵Ted Kremenek2011-01-274-8/+178
| | | | | | ObjC retain/release checker. llvm-svn: 124386
* Test for previous commitDouglas Gregor2011-01-271-0/+8
| | | | llvm-svn: 124385
* Allow #pragma unused to be used on global variables like gcc. Fixes ↵Argyrios Kyrtzidis2011-01-273-13/+12
| | | | | | rdar://8793832. llvm-svn: 124383
* Teach ASTUnit to save the specified target features, sinceDouglas Gregor2011-01-273-1/+14
| | | | | | | TargetInfo::CreateTargetInfo() mangles the target options in a way that is not idempotent. Fixes <rdar://problem/8807535>. llvm-svn: 124382
* Add libclang functions to determine the const/volatile/restrictDouglas Gregor2011-01-276-2/+47
| | | | | | qualifiers on a CXType. Patch from Stefan Seefeld, test by me. llvm-svn: 124377
* [analyzer] Fix crash when handling dot syntax on 'super'.Argyrios Kyrtzidis2011-01-273-7/+20
| | | | llvm-svn: 124376
* TextDiagnosticPrinter.cpp: Show diagnostics as far as possible even with ↵Axel Naumann2011-01-274-77/+134
| | | | | | | | | | | | | | invalid PresomedLoc, instead of just silencing it. FileManager.cpp: Allow virtual files in nonexistent directories. FileManager.cpp: Close FileDescriptor for virtual files that correspond to actual files. FileManager.cpp: Enable virtual files to be created even for files that were flagged as NON_EXISTENT_FILE, e.g. by a prior (unsuccessful) addFile(). ASTReader.cpp: Read a PCH even if the original source files cannot be found. Add a test for reading a PCH of a file that has been removed and diagnostics referencing that file. llvm-svn: 124374
* Do a proper recursive lookup when deciding whether a class's usualJohn McCall2011-01-2710-81/+248
| | | | | | | | | deallocation function has a two-argument form. Store the result of this check in new[] and delete[] nodes. Fixes rdar://problem/8913519 llvm-svn: 124373
* Provide Type::castAs<>, which is to getAs<> what cast<> is to dyn_cast<>.John McCall2011-01-271-9/+51
| | | | | | | Also provide a method to grab the base element type of a type without stressing out over qualifiers (but give it a nice scary name). llvm-svn: 124367
* Fix whitespace.NAKAMURA Takumi2011-01-279-2110/+2109
| | | | llvm-svn: 124364
* 7bit-ize.NAKAMURA Takumi2011-01-279-36/+36
| | | | llvm-svn: 124363
* Fix HTML highlighting and add missing line.Ted Kremenek2011-01-271-1/+2
| | | | llvm-svn: 124362
* Fix a few typos in HTML documentation.Ted Kremenek2011-01-271-3/+3
| | | | llvm-svn: 124361
* Hook up attribute ns_consumes_self in the ObjC retain/release checker in the ↵Ted Kremenek2011-01-274-1/+61
| | | | | | static analyzer. llvm-svn: 124360
* Tweak -Wuninitialized fixit for '_Bool' types to be initialized to 0, and ↵Ted Kremenek2011-01-271-1/+1
| | | | | | C++ 'bool' types to false. llvm-svn: 124356
* Teach -Wuninitialized to suggest "= false" for initializing bool variables.Ted Kremenek2011-01-271-0/+3
| | | | llvm-svn: 124352
* Notes on dynamic array cookies in MSVC.John McCall2011-01-271-0/+23
| | | | | | My thanks to chapuni for his help in investigating this. llvm-svn: 124351
* Import three interesting bits that apply only to C++ methods.John McCall2011-01-271-0/+3
| | | | llvm-svn: 124349
* Teach -Wuninitialized not to assert when analyzingTed Kremenek2011-01-272-8/+21
| | | | | | blocks that reference captured variables. llvm-svn: 124348
* Teach -Wuninitialized about ObjC fast enumeration loops.Ted Kremenek2011-01-272-9/+65
| | | | llvm-svn: 124347
* When we run into a template parameter that should have a defaultDouglas Gregor2011-01-272-1/+25
| | | | | | | | | | argument but doesn't (because previous template parameters had default arguments), clear out all of the default arguments so that we maintain the invariant that a template parameter has a default argument only if subsequence template parameters also have default arguments. Fixes a crash-on-invalid <rdar://problem/8913649>. llvm-svn: 124345
* Cope with parenthesized function declarators when emitting aDouglas Gregor2011-01-272-2/+12
| | | | | | diagnostic about ref-qualifiers where they do not belong. llvm-svn: 124344
* Fix a horrible bug in our handling of C-style casting, where a C-styleDouglas Gregor2011-01-277-45/+82
| | | | | | | | | | | derived-to-base cast that also casts away constness (one of the cases for static_cast followed by const_cast) would be treated as a bit-cast rather than a derived-to-base class, causing miscompiles and heartburn. Fixes <rdar://problem/8913298>. llvm-svn: 124340
* Fixes an IRgen bug where __block variable isFariborz Jahanian2011-01-264-10/+47
| | | | | | | referenced in the block-literal initializer of that variable. // rdar://8893785 llvm-svn: 124332
* Update C++0x status web pageDouglas Gregor2011-01-261-9/+9
| | | | llvm-svn: 124326
* make `make` work in examples/PrintFucntionNames on Mac. I checked that it ↵Nico Weber2011-01-262-5/+11
| | | | | | still works on Linux. llvm-svn: 124325
* Add __has_feature(cxx_reference_qualified_functions); update tests andDouglas Gregor2011-01-263-3/+18
| | | | | | documentation. llvm-svn: 124322
* Implement the restriction that a function with a ref-qualifier cannotDouglas Gregor2011-01-263-5/+29
| | | | | | | | overload a function without a ref-qualifier (C++0x [over.load]p2). This, apparently, completes the implementation of rvalue references for *this. llvm-svn: 124321
* Handle C-style casts to rvalue reference types that cast away constness.Douglas Gregor2011-01-262-4/+25
| | | | llvm-svn: 124319
* Improve the extension warning for the use of ref-qualifiers, toDouglas Gregor2011-01-263-2/+14
| | | | | | | distinguish them from rvalue references. Using the rvalue-references warning was weird when the ref-qualifier was '&'. llvm-svn: 124316
* When mangling a qualified array type, push the qualifiers down to theJohn McCall2011-01-262-11/+37
| | | | | | element type. Fixes rdar://problem/8913416. llvm-svn: 124315
* Rvalue references for *this: explicitly keep track of whether aDouglas Gregor2011-01-263-8/+21
| | | | | | | | | reference binding is for the implicit object parameter of a member function with a ref-qualifier. My previous comment, that we didn't need to track this explicitly, was wrong: we do in fact get rvalue-references-prefer-rvalues overloading with ref-qualifiers. llvm-svn: 124313
* Rvalue references for *this: implement the implicit conversion rulesDouglas Gregor2011-01-265-46/+183
| | | | | | | for the implicit object argument to a non-static member function with a ref-qualifier (C++0x [over.match.funcs]p4). llvm-svn: 124311
* Un-nest the meat of this function.John McCall2011-01-261-54/+53
| | | | llvm-svn: 124310
* Fix some obvious bugs in the conditional-cleanup code and then make theJohn McCall2011-01-265-61/+18
| | | | | | dtor cleanup use it. llvm-svn: 124309
* Move InheritableAttr::isInherited to AttrPeter Collingbourne2011-01-261-1/+2
| | | | llvm-svn: 124299
* Remove Attr::isMerged; it is not used any more and redundant withPeter Collingbourne2011-01-261-4/+0
| | | | | | InheritableAttr llvm-svn: 124298
* Rvalue references for *this: allow functions to be overloaded based onDouglas Gregor2011-01-262-2/+24
| | | | | | | | | the presence and form of a ref-qualifier. Note that we do *not* yet implement the restriction in C++0x [over.load]p2 that requires either all non-static functions with a given parameter-type-list to have a ref-qualifier or none of them to have a ref-qualifier. llvm-svn: 124297
* Rvalue references for *this: add name mangling for ref-qualifiers,Douglas Gregor2011-01-263-4/+58
| | | | | | | | using rules that I just made up this morning. This encoding has now been proposed to the Itanium C++ ABI group for inclusion, but of course it's still possible that the mangling will change. llvm-svn: 124296
* Rvalue references for *this: tentative parsing and template argument deduction.Douglas Gregor2011-01-263-5/+56
| | | | llvm-svn: 124295
* Reference qualifiers for *this: implement C++0x [expr.mptr.oper]p6,Douglas Gregor2011-01-263-0/+63
| | | | | | | the restrictions on .* and ->* for ref-qualified pointer-to-member functions. llvm-svn: 124294
* Clean up the C++0x __has_feature tests. Specifically:Douglas Gregor2011-01-263-30/+30
| | | | | | | | | | | | | - Don't publicize a C++0x feature through __has_feature if we aren't in C++0x mode (even if the feature is available only with a warning). - "auto" is not implemented well enough for its __has_feature to be turned on. - Fix the test of C++0x __has_feature to actually test what we're trying to test. Searching for the substring "foo" when our options are "foo" and "no_foo" doesn't work :) llvm-svn: 124291
* Reinstate r124236 (tweaking the rvalue-reference overload resolutionDouglas Gregor2011-01-263-29/+70
| | | | | | rules), now that we've actually have a clean build for me to sully. llvm-svn: 124290
* Rvalue references for *this: Douglas Gregor2011-01-2614-21/+177
| | | | | | | | | | | | - Add ref-qualifiers to the type system; they are part of the canonical type. Print & profile ref-qualifiers - Translate the ref-qualifier from the Declarator chunk for functions to the function type. - Diagnose mis-uses of ref-qualifiers w.r.t. static member functions, free functions, constructors, destructors, etc. - Add serialization and deserialization of ref-qualifiers. llvm-svn: 124281
* Teach -Wreturn-type that destructors can appearTed Kremenek2011-01-262-11/+24
| | | | | | | | | after a 'return' in a CFGBlock. This accidentally was working before, but the false assumption that 'return' always appeared at the end of the block was uncovered by a recent change. llvm-svn: 124280
* Merge -Wuninitialized-experimental into -Wuninitialized.Ted Kremenek2011-01-264-5/+5
| | | | llvm-svn: 124279
* Tweak -Wuninitialized-experimental to not emitTed Kremenek2011-01-262-3/+24
| | | | | | | a warning for uses of an uninitialized variable when the use is a void cast, e.g. (void) x. llvm-svn: 124278
* Better framework for conditional cleanups; untested as yet.John McCall2011-01-269-83/+297
| | | | | | | | I'm separately committing this because it incidentally changes some block orderings and minor IR issues, like using a phi instead of an unnecessary alloca. llvm-svn: 124277
* Rvalue references for *this: parse ref-qualifiers.Douglas Gregor2011-01-267-4/+69
| | | | llvm-svn: 124276
* Use RecordLayout::getBaseClassOffset() where CharUnits are needed instead ofKen Dyck2011-01-261-7/+4
| | | | | | converting getBaseClassOffsetInBits() to CharUnits. llvm-svn: 124274
OpenPOWER on IntegriCloud