| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
a boolean.
llvm-svn: 155299
|
| |
|
|
|
|
|
| |
exception specifications in C++11 until after we've parsed the exception
specifications for nested classes.
llvm-svn: 155293
|
| |
|
|
| |
llvm-svn: 155290
|
| |
|
|
|
|
| |
test by me.
llvm-svn: 155289
|
| |
|
|
| |
llvm-svn: 155282
|
| |
|
|
| |
llvm-svn: 155279
|
| |
|
|
| |
llvm-svn: 155274
|
| |
|
|
|
|
|
| |
declaration of the same name. r155187 caused us to miss this if the prior
declaration did not declare a type.
llvm-svn: 155269
|
| |
|
|
|
|
|
|
|
|
|
| |
Set the source location for the "member reference base type ... is not a
structure or union" diag to point at the operator rather than the member name.
If we're giving this diagnostic because of a typo'd '.' in place of a ';' at
the end of a line, the caret previously pointed at the identifier on the
following line, which isn't as helpful as it could be. Pointing the caret at
the '.' makes it more obvious what the problem is.
llvm-svn: 155267
|
| |
|
|
|
|
|
| |
The check for excluding libarclite on i386 MacOSX should not apply to
Foundation.
llvm-svn: 155263
|
| |
|
|
|
|
|
|
| |
objc_returns_inner_pointer attribute can be applied to
methods only. Diagnsose otherwise, instead of
crashing. // rdar://11253688
llvm-svn: 155245
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is needed to ensure that we always report issues in the correct
function. For example, leaks are identified when we call remove dead
bindings. In order to make sure we report a callee's leak in the callee,
we have to run the operation in the callee's context.
This change required quite a bit of infrastructure work since:
- We used to only run remove dead bindings before a given statement;
here we need to run it after the last statement in the function. For
this, we added additional Program Point and special mode in the
SymbolReaper to remove all symbols in context lower than the current
one.
- The call exit operation turned into a sequence of nodes, which are
now guarded by CallExitBegin and CallExitEnd nodes for clarity and
convenience.
(Sorry for the long diff.)
llvm-svn: 155244
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
overwriting the input file. For example,
clang -c foo.s -o foo.o -save-temps
Unfortunately, the original patch didn't compare the paths of the input and
output files. Thus, something like the following would fail to create foo.s.
cd /tmp/obj
clang -c ../src/foo.s -o foo.o -save-temps
rdar://11252615
llvm-svn: 155224
|
| |
|
|
|
|
|
|
| |
non-const reference parameter type if the class had any subobjects with deleted
copy constructors. This causes a rejects-valid if the class's copy constructor
is explicitly defaulted (as happens for some implementations of std::pair etc).
llvm-svn: 155218
|
| |
|
|
|
|
|
| |
Add a FIXME comment.
rdar://11283560
llvm-svn: 155207
|
| |
|
|
|
|
| |
tested.
llvm-svn: 155205
|
| |
|
|
| |
llvm-svn: 155191
|
| |
|
|
|
|
| |
when using Microsoft C++ ABI
llvm-svn: 155189
|
| |
|
|
|
|
|
|
|
| |
up an elaborated type specifier in a friend declaration, only look for type
declarations, per [basic.lookup.elab]p2. If we know that the redeclaration
lookup for a friend class template in a dependent context finds a non-template,
don't delay the diagnostic to instantiation time.
llvm-svn: 155187
|
| |
|
|
| |
llvm-svn: 155185
|
| |
|
|
|
|
|
|
|
|
| |
flags. We have preprocessed source, so we don't need these.
No test case as it's fairly difficult to make the compiler crash on demand. I'll
patiently wait for Ben to tell me how to do this in 2 lines of code. :)
rdar://11283560
llvm-svn: 155180
|
| |
|
|
|
|
|
| |
is issued on weak property as receiver and not on
any other use of a weak property. // rdar://10225276
llvm-svn: 155169
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
followed by an identifier as declaration specificer (except for ObjC).
This allows e.g. an out-of-line C++ member function definitions to be
recognized as functions and not as variable declarations if the type
name for the first parameter is not recognized as a type--say, when there
is a function name shadowing an enum type name and the parameter is
missing the "enum" keyword needed to distinguish the two.
Note that returning TPResult::Error() instead of TPResult::True()
appears to have the same end result, while TPResult::Ambiguous()
results in a crash.
llvm-svn: 155163
|
| |
|
|
|
|
|
| |
if receiver is a 'weak' property, by type or by attribute.
// rdar://10225276
llvm-svn: 155159
|
| |
|
|
|
|
| |
path-sensitive analysis like handling of trylock expressions.
llvm-svn: 155137
|
| |
|
|
|
|
|
| |
patch fixing writing a spurious 'static' into
the wrong place. // rdar://11275241
llvm-svn: 155130
|
| |
|
|
|
|
|
|
|
|
| |
which are checked in the parser, and analysis warnings that require the
full analysis. This allows attribute syntax to be checked independently
of the full thread safety analysis. Also introduces a new warning for the
case where a string is used as a lock expression; this allows the analysis
to gracefully handle expressions that would otherwise cause a parse error.
llvm-svn: 155129
|
| |
|
|
| |
llvm-svn: 155107
|
| |
|
|
|
|
| |
initialize references, create std::initializer_list objects, or call constructors.
llvm-svn: 155105
|
| |
|
|
|
|
|
|
| |
This fixes the included testcase and lets us simplify the code a bit. It
does require using mergeWithMin when merging class information to its
members. Expand the comments to explain why that works.
llvm-svn: 155103
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there is no need for mergeVisibily to ever increase the visibility. Not
doing so lets us replace an incorrect use of mergeVisibilityWithMin. The
testcase
struct HIDDEN RECT {
int top;
};
DEFAULT RECT foo = {0};
shows that we should give preference to one of the attributes instead of
keeping the minimum. We still get this testcase wrong because mergeVisibily
handles two explicit visibilities incorrectly, but this is a step in the
right direction.
llvm-svn: 155101
|
| |
|
|
| |
llvm-svn: 155100
|
| |
|
|
|
|
| |
DHasExplicitVisibility. Simplify the code a bit.
llvm-svn: 155099
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the current implementation this should be a nop as explicit visibility
takes precedence in mergeVisibility.
The location chosen is such that attributes checked above it can force
a symbol to be default. For example, an attribute is the variable or function.
Attributes checked after this point, can only make the visibility more
restrictive. An attribute in a type for example.
llvm-svn: 155098
|
| |
|
|
|
|
|
|
| |
currently a nop as those users are the first merge or are a merge
of a hidden explicit visibility, which always wins in the current
implementation.
llvm-svn: 155095
|
| |
|
|
|
|
|
| |
into the wrong place when rewriting a static function
which declares block literals. // rdar://11275241
llvm-svn: 155084
|
| |
|
|
| |
llvm-svn: 155082
|
| |
|
|
|
|
|
|
|
| |
specifications on member function templates of class templates and other such
nested beasties. Store the function template from which we are to instantiate
an exception specification rather than trying to deduce it. Plus some
additional test cases.
llvm-svn: 155076
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r155047. See the LLVM log for the primary motivation:
http://llvm.org/viewvc/llvm-project?rev=155047&view=rev
Primary commit r154828:
- Several issues were raised in review, and fixed in subsequent
commits.
- Follow-up commits also reverted, and which should be folded into the
original before reposting:
- r154837: Re-add the 'undef BUILTIN' thing to fix the build.
- r154928: Fix build warnings, re-add (and correct) header and
license
- r154937: Typo fix.
Please resubmit this patch with the relevant LLVM resubmission.
llvm-svn: 155048
|
| |
|
|
|
|
|
| |
property accessor (getter) missing, instead of crashing.
// rdar://11273060
llvm-svn: 155036
|
| |
|
|
| |
llvm-svn: 155011
|
| |
|
|
| |
llvm-svn: 155005
|
| |
|
|
|
|
| |
the MipsTargetInfoBase::setFeatureEnabled() routine.
llvm-svn: 154998
|
| |
|
|
| |
llvm-svn: 154997
|
| |
|
|
|
|
| |
at the command line.
llvm-svn: 154989
|
| |
|
|
|
|
| |
Follow up to r154924: check that we are in a static CMethodDecl to enable the Microsoft bug emulation regarding access to protected member during PTM creation. Not just any static function.
llvm-svn: 154982
|
| |
|
|
| |
llvm-svn: 154981
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Unprintable source in diagnostics is transformed to a printable form and then
displayed with reversed colors if possible. Unprintable characters are
displayed as <U+NNNN> while bytes that do not represent valid characters are
shown as <XX>.
Column adjustments to diagnostic carets, highlighted ranges, and fixups are
made both for characters escaped as above and for characters which are
printable but take up more than a single column.
llvm-svn: 154980
|
| |
|
|
|
|
| |
explicit.
llvm-svn: 154969
|
| |
|
|
|
|
| |
and explicit specializations of function templates appropriately.
llvm-svn: 154956
|