| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
...by synthesizing their body to be "return self->_prop;", with an extra
nudge to RetainCountChecker to still treat the value as +0 if we have no
other information.
This doesn't handle weak properties, but that's mostly correct anyway,
since they can go to nil at any time. This also doesn't apply to properties
whose implementations we can't see, since they may not be backed by an
ivar at all. And finally, this doesn't handle properties of C++ class type,
because we can't invoke the copy constructor. (Sema has actually done this
work already, but the AST it synthesizes is one the analyzer doesn't quite
handle -- it has an rvalue DeclRefExpr.)
Modeling setters is likely to be more difficult (since it requires
handling strong/copy), but not impossible.
<rdar://problem/11956898>
llvm-svn: 198953
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
which may belong to unrelated classes. It was
primarily intended for miuse of @selector expression.
But warning is too noisy and will be issued when
an actual @selector is used. // rdar://15740134
llvm-svn: 198952
 | 
| | 
| 
| 
| 
| 
|  | 
Don't repeat the 32 <-> 64 architecture mapping incompletely.
llvm-svn: 198943
 | 
| | 
| 
| 
|  | 
llvm-svn: 198940
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This change was requested to avoid confusion if we ever support non windows
coff systems.
llvm-svn: 198939
 | 
| | 
| 
| 
| 
| 
|  | 
Also move some comments into the block they were meant to describe.
llvm-svn: 198935
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Before:
  SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)]
      .insert(ccccccccccccccccccccccc);
After:
  SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)].insert(
      ccccccccccccccccccccccc);
This seems to be about 3:1 more common in Google and Chromium style and I found
only a handful of instances inside the LLVM codebase.
llvm-svn: 198924
 | 
| | 
| 
| 
|  | 
llvm-svn: 198923
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Before:
  [dictionary setObject:@(1)forKey:@"number"];
After:
  [dictionary setObject:@(1) forKey:@"number"];
llvm-svn: 198920
 | 
| | 
| 
| 
|  | 
llvm-svn: 198918
 | 
| | 
| 
| 
| 
| 
|  | 
the warning will not trigger on code protected by compile time checks.
llvm-svn: 198913
 | 
| | 
| 
| 
|  | 
llvm-svn: 198912
 | 
| | 
| 
| 
|  | 
llvm-svn: 198911
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
__declspec(align), when applied to bitfields affects their perferred 
alignment instead of their required alignment.  We don't know why.  
Also, #pragma pack(n) turns packing *off* if n is greater than the 
pointer size.  This is now observable because of the impact of 
declspec(align) on bitfields.
llvm-svn: 198907
 | 
| | 
| 
| 
|  | 
llvm-svn: 198906
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
property has the naming convention that implies 'ownership'.
2) improve on diagnostic and make it property specific.
3) fix the line number in the case of default property
synthesis. // rdar://15757510
llvm-svn: 198905
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
just valid C++11 =)
Original commit message:
PR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on
SPARC, where uint64_t apparently requires higher alignment than void*.
llvm-svn: 198903
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The MS abi lays out *all* non-virtual bases with leading vfptrs before 
laying out non-virutal bases without vfptrs.  This guarantees that the 
primary base is laid out first.  r198818 fixed RecordLayoutBuilder to 
produce compatiable layouts.  This patch fixes CGRecordLayoutBuilder to 
be able to consume those layouts and produce meaningful output without 
tripping any asserts about assumed incoming layout.
A test case is included that shows CGRecordLayoutBuilder in fact 
produces output in the compatiable order.
llvm-svn: 198900
 | 
| | 
| 
| 
| 
| 
|  | 
whether an ARM target has the "interrupt" attribute, it will return true for ARM and MSP430 targets, and false for others.
llvm-svn: 198897
 | 
| | 
| 
| 
| 
| 
|  | 
the parsed attributes are responsible for knowing their target-specific nature, instead of letting Sema figure it out. This is necessary so that __has_attribute can eventually determine whether a parsed attribute applies to the given target or not.
llvm-svn: 198896
 | 
| | 
| 
| 
| 
| 
| 
|  | 
I introduced this bug in 198815. Thanks for Mark Lacey for noticing.
Unfortunately, I have no idea how to test this code.
llvm-svn: 198891
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Fixes <rdar://problem/15596883>
In ARC, __attribute__((objc_precise_lifetime)) guarantees that the
object stored in it will survive to the end of the variable's formal
lifetime.  It is therefore useful even if it completely unused.
llvm-svn: 198888
 | 
| | 
| 
| 
|  | 
llvm-svn: 198887
 | 
| | 
| 
| 
| 
| 
|  | 
analysis APIs. Now using tablegen to determine whether an attribute's arguments should be parsed in an unevaluated context instead of relying on a separate, hard-coded list of attributes.
llvm-svn: 198883
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
While it is allowed to not have an @ on subsequent lines, it seems
general practice to add them. If undesired, the code author can easily
remove them again and clang-format won't re-add them.
llvm-svn: 198871
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Before:
  #pragma mark Any non - hyphenated or hyphenated string(including parentheses).
After:
  #pragma mark Any non-hyphenated or hyphenated string (including parentheses).
llvm-svn: 198870
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
- Format a braced list with one element per line if it has nested
  braced lists.
- Use a column layout only when the list has 6+ elements (instead of the
  current 4+ elements).
llvm-svn: 198869
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
from the global address space (6.5.1 of the OpenCL 1.2 specification).
This makes clang construct the image arguments in the global address 
space and generate the argument metadata with the correct address space 
descriptor. 
Patch by Pedro Ferreira!
llvm-svn: 198868
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary: This fixes the leak described in http://llvm.org/bugs/show_bug.cgi?id=18318
Reviewers: chandlerc, dblaikie
Reviewed By: chandlerc
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2474
llvm-svn: 198857
 | 
| | 
| 
| 
| 
| 
|  | 
rdar://15779837.
llvm-svn: 198856
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
crash on"
It broke building.
This reverts commit r198845.
llvm-svn: 198849
 | 
| | 
| 
| 
| 
| 
|  | 
SPARC, where uint64_t apparently requires higher alignment than void*.
llvm-svn: 198845
 | 
| | 
| 
| 
|  | 
llvm-svn: 198837
 | 
| | 
| 
| 
| 
| 
| 
|  | 
issue 1430. Don't allow a pack expansion to be used as an argument to an alias
template unless the corresponding parameter is a parameter pack.
llvm-svn: 198833
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch refactors microsoft record layout to be more "natural".  The 
most dominant change is that vbptrs and vfptrs are injected after the 
fact.  This simplifies the implementation and the math for the offest 
for the first base/field after the vbptr.
llvm-svn: 198818
 | 
| | 
| 
| 
|  | 
llvm-svn: 198815
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
It's not worth keeping two copies of the identifier init and comparison code
just to save a pointer coparison.
This should reduce further once we get proper contextual keywords in the token
stream, so having the identifier checks in one place is a step towards that.
Cleanup only.
llvm-svn: 198814
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
file to avoid looking it up again.
Hopefully addresses rdar://14514222.
llvm-svn: 198781
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
...rather somewhere in the destructor when we try to access something and
realize the object has already been deleted. This is necessary because
the destructor is processed before the 'delete' itself.
Patch by Karthik Bhat!
llvm-svn: 198779
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
@implementation block.
PR18406.
llvm-svn: 198770
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Before:
  vector<int> foo{ ::SomeFunction()};
After:
  vector<int> foo{::SomeFunction()};
llvm-svn: 198769
 | 
| | 
| 
| 
| 
| 
|  | 
Patch reviewed by Rafael Espindola.
llvm-svn: 198765
 | 
| | 
| 
| 
|  | 
llvm-svn: 198741
 | 
| | 
| 
| 
| 
| 
|  | 
not cause the template specialization to have no linkage.
llvm-svn: 198726
 | 
| | 
| 
| 
|  | 
llvm-svn: 198723
 | 
| | 
| 
| 
| 
| 
|  | 
<rdar://problem/15711488>
llvm-svn: 198722
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
type-specifier in C++. Some checks will assert in this case otherwise (in
particular, the access specifier may be missing if this happens inside a class
definition, due to a violation of an AST invariant).
llvm-svn: 198721
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Debug info: Implement a cleaner version of r198461. For symmetry with
C and C++ don't emit an extra lexical scope for the compound statement
that is the body of an Objective-C method.
llvm-svn: 198715
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
within"
This reverts commit r198461.
llvm-svn: 198714
 | 
| | 
| 
| 
| 
| 
|  | 
This reverts commit 198699 so we can get a cleaner patch.
llvm-svn: 198713
 |