| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 156559
|
| |
|
|
|
|
| |
Fixes assertion hit in the preprocessing record. rdar://11426523
llvm-svn: 156557
|
| |
|
|
|
|
| |
// rdar://11374235
llvm-svn: 156552
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
from the frontend when the location is invalid and the SourceManager null.
Instead of keeping the SourceManager object in DiagnosticRenderer, propagate it
to the calls accordingly (as reference when it is expected to not be null, or pointer
when it may be null).
This effectively makes DiagnosticRenderer not tied to a specific SourceManager,
removing a hack from TextDiagnosticPrinter.
rdar://11386874
llvm-svn: 156536
|
| |
|
|
| |
llvm-svn: 156534
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
// FIXME: This needs to happen before we merge declarations. Then,
// let attribute merging cope with attribute conflicts.
This was already being done for variables, but for functions we were merging
then first and then applying the attributes. To avoid duplicating merging
logic, some of the helpers in SemaDeclAttr.cpp become methods that can
handle merging two attributes in one decl or inheriting attributes from one
decl to another.
With this change we are now able to produce errors for variables with
incompatible visibility attributes or warn about unused dllimports in
variables.
This changes the attribute list iteration back to being in reverse source
code order, as that matches what decl merging does and avoids differentiating
the two cases is the merge*Attr methods.
llvm-svn: 156531
|
| |
|
|
|
|
|
|
|
|
| |
We report a leak at a point a leaked variable is no longer accessible.
The statement that happens to be at that point is not relevant to the
leak diagnostic and, thus, should not be highlighted.
radar://11178519
llvm-svn: 156530
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We don't create any declaration to mark the explicit instantiation of function
templates other than the instantiation itself, so visit that when traversing
the function template decl.
This is a temporary fix, pending the creation of a Decl node to represent the
explicit instantiation.
Patch by Daniel Jasper!
llvm-svn: 156522
|
| |
|
|
|
|
|
| |
'*' on objective-c class name was misplaced.
// rdar://11311333
llvm-svn: 156517
|
| |
|
|
| |
llvm-svn: 156513
|
| |
|
|
|
|
| |
-Wconditional-uninitialized into -Wuninitialized.
llvm-svn: 156512
|
| |
|
|
|
|
|
| |
parser, and use it to emit better diagnostics in cases where an identifer
can't be looked up as a type name.
llvm-svn: 156508
|
| |
|
|
|
|
|
| |
normal parse for token sequences like 'vector pixel foo'. This incidentally also
fixes a couple of wrong-parse issues.
llvm-svn: 156503
|
| |
|
|
| |
llvm-svn: 156502
|
| |
|
|
| |
llvm-svn: 156501
|
| |
|
|
|
|
| |
That allows to run the tests on all platforms successfully.
llvm-svn: 156500
|
| |
|
|
| |
llvm-svn: 156498
|
| |
|
|
| |
llvm-svn: 156497
|
| |
|
|
|
|
| |
Also, add an anchor as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 156495
|
| |
|
|
| |
llvm-svn: 156493
|
| |
|
|
| |
llvm-svn: 156491
|
| |
|
|
| |
llvm-svn: 156490
|
| |
|
|
|
|
| |
rdar://11409204
llvm-svn: 156489
|
| |
|
|
| |
llvm-svn: 156488
|
| |
|
|
| |
llvm-svn: 156487
|
| |
|
|
|
|
| |
rdar://11407754
llvm-svn: 156485
|
| |
|
|
| |
llvm-svn: 156482
|
| |
|
|
| |
llvm-svn: 156481
|
| |
|
|
|
|
| |
unknown to me.
llvm-svn: 156480
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a command line argument adjuster, which is responsible for command line
arguments modification before the arguments are used to run a frontend action.
Define class ClangSyntaxOnlyAdjuster implements ArgumentsAdjuster interface.
This class converts input command line arguments to the "syntax check only"
variant.
Reviewed by Manuel Klimek.
llvm-svn: 156478
|
| |
|
|
| |
llvm-svn: 156477
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
reserving a bit
in ObjCMethodDecl to indicate whether the method does not override any other method,
which is the majority of cases.
That way we can avoid unnecessary work doing lookups, especially when PCH is involved.
rdar://11360082
llvm-svn: 156476
|
| |
|
|
|
|
| |
add a test for -fbounds-checking code generation
llvm-svn: 156474
|
| |
|
|
|
|
| |
or template-id which can't be parsed.
llvm-svn: 156468
|
| |
|
|
| |
llvm-svn: 156465
|
| |
|
|
|
|
|
|
| |
may have a Typedef type, and not always a ConstantArrayType.
Fixes <rdar://problem/11387038>.
llvm-svn: 156464
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
candidate template ignored: substitution failed [with T = int]: no type named 'type' in 'std::enable_if<false, void>'
Instead, just say:
candidate template ignored: disabled by 'enable_if' [with T = int]
... and point at the enable_if condition which (we assume) failed.
This is applied to all cases where the user writes 'typename enable_if<...>::type' (optionally prefixed with a nested name specifier), and 'enable_if<...>' names a complete class type which does not have a member named 'type', and this results in a candidate function being ignored in a SFINAE context. Thus it catches 'std::enable_if', 'std::__1::enable_if', 'boost::enable_if' and 'llvm::enable_if'.
llvm-svn: 156463
|
| |
|
|
| |
llvm-svn: 156462
|
| |
|
|
| |
llvm-svn: 156455
|
| |
|
|
|
|
|
| |
Added support for conditional operators and tightened the exclusion of the
unary operator from all operators to only the address of operator.
llvm-svn: 156450
|
| |
|
|
| |
llvm-svn: 156449
|
| |
|
|
|
|
| |
synthesis of property getter/setters. // rdar://11374235
llvm-svn: 156447
|
| |
|
|
|
|
|
|
|
|
|
|
| |
RegionStore, so be explicit about it and generate UnknownVal().
This is a hack to ensure we never produce undefined values for a value
coming from a compound value. (The undefined values can lead to
false positives.)
radar://10127782
llvm-svn: 156446
|
| |
|
|
|
|
|
|
| |
When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend.
OK'ed by Chad; thanks for the review.
llvm-svn: 156431
|
| |
|
|
|
|
|
|
|
| |
ElementRegions. This is a bit
disruptive, but it allows RegionStore to better "see" through casts that reinterpret arrays of values
as structs. Fixes <rdar://problem/11405978>.
llvm-svn: 156428
|
| |
|
|
|
|
|
|
| |
instead of creating new ones.
This is a functionality optimization.
llvm-svn: 156427
|
| |
|
|
| |
llvm-svn: 156426
|
| |
|
|
|
|
|
|
| |
@throw expression; l2r conversion can introduce new cleanups
in certain cases, like when the expression is an ObjC property
reference of retainable type in ARC.
llvm-svn: 156425
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
don't reason about.
Self is just like a local variable in init methods, so it can be
assigned anything like result of static functions, other methods ... So
to suppress false positives that result in such cases, stop tracking the
checker-specific state after self is being assigned to (unless the
value is't being assigned to is either self or conforms to our rules).
This change does not invalidate any existing regression tests.
llvm-svn: 156420
|
| |
|
|
|
|
|
| |
prototypes should both return `struct objc_class *`.
// rdar://11375495
llvm-svn: 156418
|