- Aug 21, 2012
-
-
Richard Smith authored
llvm-svn: 162255
-
John McCall authored
to overwrite objects that might have been allocated into the type's tail padding. This patch is missing some potential optimizations where the destination is provably a complete object, but it's necessary for correctness. Patch by Jonathan Sauer. llvm-svn: 162254
-
Richard Smith authored
if a diagnostic is emitted outside of any source file. The fix mirrors the corresponding code in TextDiagnosticPrinter. This required moving the functional parts of SDiagRenderer into SDiagWriter so they can be reused in the non-rendering codepath. No functionality change. llvm-svn: 162253
-
John McCall authored
diagnostics for bad deployment targets and adding a few more predicates. Includes a patch by Jonathan Schleifer to enable ARC for ObjFW. llvm-svn: 162252
-
Dmitri Gribenko authored
llvm-svn: 162251
-
Jack Carter authored
just trying to show it did not crash and burn. This patch checks that the resultant .ll contents are correct. llvm-svn: 162249
-
Sam Panzer authored
The old error message stating that 'begin' was an undeclared identifier is replaced with a new message explaining that the error is in the range expression, along with which of the begin() and end() functions was problematic if relevant. Additionally, if the range was a pointer type or defines operator*, attempt to dereference the range, and offer a FixIt if the modified range works. llvm-svn: 162248
-
Jordan Rose authored
By doing this in the constraint managers, we can ensure that ANY reference whose value we don't know gets the effect, even if it's not a top-level parameter. llvm-svn: 162246
-
Dmitri Gribenko authored
Add a flag PrintingPolicy::DontRecurseInDeclContext to provide "terse" output from DeclPrinter. The motivation is to use DeclPrinter to print declarations in user-friendly format, without overwhelming user with inner detail of the declaration being printed. Also add many tests for DeclPrinter. There are quite a few things that we print incorrectly: search for WRONG in DeclPrinterTest.cpp -- and these tests check our output against incorrect output, so that we can fix/refactor/rewrite the DeclPrinter later. llvm-svn: 162245
-
John McCall authored
First, when synthesizing an explicitly strong/retain/copy property of Class type, don't pretend during compatibility checking that the property is actually assign. Instead, resolve incompatibilities by secretly changing the type of *implicitly* __unsafe_unretained Class ivars to be strong. This is moderately evil but better than what we were doing. Second, when synthesizing the setter for a strong property of non-retainable type, be sure to use objc_setProperty. This is possible when the property is decorated with the NSObject attribute. This is an ugly, ugly corner of the language, and we probably ought to deprecate it. The first is rdar://problem/12039404; the second was noticed by inspection while fixing the first. llvm-svn: 162244
-
Eric Christopher authored
Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 16 23:50:46 2012 +0000 Add some caching here for the builtin types. rdar://12117935 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162066 91177308-0d34-0410-b5e6-96231b3b80d8 after fixing a thinko. llvm-svn: 162243
-
Dmitri Gribenko authored
does not return true for all implicit decls currently. This should fix PR13634 for now, but Decl::isImplicit() should be fixed, too. llvm-svn: 162238
-
David Blaikie authored
llvm-svn: 162236
-
David Blaikie authored
llvm-svn: 162235
-
Jordan Rose authored
Under GC, a release message is ignored, so "release and stop tracking" just becomes "stop tracking". But CFRelease is still honored. This is the main difference between ns_consumed and cf_consumed. llvm-svn: 162234
-
- Aug 20, 2012
-
-
Jordan Rose authored
This should unbreak the buildbots (r162220). llvm-svn: 162232
-
Michael J. Spencer authored
llvm-svn: 162231
-
DeLesley Hutchins authored
ICE in friend functions. llvm-svn: 162229
-
Eli Friedman authored
llvm-svn: 162226
-
Manuel Klimek authored
of matchers, categorized by type and fully expanded for the context in which they can be used. I used a script to generate this documentation which I'll want to be scrunitized by a code review before checking it in. llvm-svn: 162225
-
Jordan Rose authored
This is used to handle functions and methods that consume an argument (annotated with the ns_consumed or cf_consumed attribute), but then the argument's retain count may be further modified in a callback. We want to warn about over-releasing, but we can't really track the object afterwards. llvm-svn: 162221
-
Jordan Rose authored
Also, suggest 'readonly' even if the property has been given an ownership attribute ('strong', 'weak', etc). This is used when properties are declared readonly in the public interface but readwrite in a class extension. <rdar://problem/11500004&11932285> llvm-svn: 162220
-
Jordan Rose authored
No functionality change. llvm-svn: 162216
-
Jordan Rose authored
Generating a sink is significantly different behavior from generating a normal node, and a simple boolean parameter can be rather opaque. Per offline discussion with Anna, adding new generation methods is the clearest way to communicate intent. No functionality change. llvm-svn: 162215
-
Richard Smith authored
llvm-svn: 162212
-
Chad Rosier authored
llvm-svn: 162210
-
Jordan Rose authored
Forgetting to at least cast the result was giving us Loc/NonLoc problems in SValBuilder (hitting an assertion). But the standard (both C and C++) does actually guarantee that && and || will result in the actual values 1 and 0, typed as 'int' in C and 'bool' in C++, and we can easily model that. PR13461 llvm-svn: 162209
-
Dmitri Gribenko authored
llvm-svn: 162206
-
Manuel Klimek authored
- use InnerMatcher consistently, fix style violations on the way - doxygenify code snippets across all comments - start doxygenifying code references in text - addeed missing Usable as: sections llvm-svn: 162205
-
Tobias Grosser authored
Without this patch, lib.clang_getNumCompletionChunks is called at each _iteration_ of a 'for chunk in CompletionString' loop. Now we call it just once. llvm-svn: 162200
-
Hans Wennborg authored
llvm-svn: 162198
-
Tobias Grosser authored
Suggested by: Francisco Lopes <oblita@gmail.com> llvm-svn: 162191
-
- Aug 19, 2012
-
-
Gregory Szorc authored
It isn't used anywhere yet. llvm-svn: 162190
-
Tobias Grosser authored
Reported by: Francisco Lopes <oblita@gmail.com> llvm-svn: 162182
-
Tobias Grosser authored
llvm-svn: 162181
-
- Aug 18, 2012
-
-
Jordan Rose authored
In Debug builds, VerifyDiagnosticConsumer checks any files with diagnostics to make sure we got the chance to parse them for directives (expected-warning and friends). This check previously relied on every parsed file having a FileEntry, which broke the cling interpreter's test suite. This commit changes the extra debug checking to mark a file as unparsed as soon as we see a diagnostic from that file. At the very end, any files that are still marked as unparsed are checked for directives, and a fatal error is emitted (as before) if we find out that there were directives we missed. -verify directives should always live in actual parsed files, not in PCH or AST files. Patch by Andy Gibbs, with slight modifications by me. llvm-svn: 162171
-
Benjamin Kramer authored
llvm-svn: 162168
-
John McCall authored
always yield a positive number. Just print the negated result as an unsigned number. llvm-svn: 162163
-
Richard Smith authored
nested names as id-expressions, using the annot_primary_expr annotation, where possible. This removes some redundant lookups, and also allows us to typo-correct within tentative parsing, and to carry on disambiguating past an identifier which we can determine will fail lookup as both a type and as a non-type, allowing us to disambiguate more declarations (and thus offer improved error recovery for such cases). This also introduces to the parser the notion of a tentatively-declared name, which is an identifier which we *might* have seen a declaration for in a tentative parse (but only if we end up disambiguating the tokens as a declaration). This is necessary to correctly disambiguate cases where a variable is used within its own initializer. llvm-svn: 162159
-
Dmitri Gribenko authored
declare size_t in system-independent way. llvm-svn: 162158
-