| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 164363
|
| |
|
|
| |
llvm-svn: 164360
|
| |
|
|
| |
llvm-svn: 164359
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
but not
external visible decls, call DeclContext::setMustBuildLookupTable so that the
"lazy decls" bit of the LookupPtr is set.
Previously, in non-C++, if there were no new declarations causing the "lazy decls" bit
to be set, then DeclContext::lookups_begin() would fail to return the decls from the PCH.
Fixes rdar://12316296.
llvm-svn: 164351
|
| |
|
|
| |
llvm-svn: 164348
|
| |
|
|
|
|
|
|
|
|
|
| |
The expression based expansion too often results in IR level optimizations
splitting the intermediate values into separate basic blocks, preventing
the formation of the VBSL instruction as the code author intended. In
particular, LICM would often hoist part of the computation out of a loop.
rdar://11011471
llvm-svn: 164342
|
| |
|
|
| |
llvm-svn: 164341
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when
their implementations are unavailable. Start by simulating dispatch_sync().
This change is largely a bunch of plumbing around something very simple. We
use AnalysisDeclContext to conjure up a fake function body (using the
current ASTContext) when one does not exist. This is controlled
under the analyzer-config option "faux-bodies", which is off by default.
The plumbing in this patch is largely to pass the necessary machinery
around. CallEvent needs the AnalysisDeclContextManager to get
the function definition, as one may get conjured up lazily.
BugReporter and PathDiagnosticLocation needed to be relaxed to handle
invalid locations, as the conjured body has no real source locations.
We do some primitive recovery in diagnostic generation to generate
some reasonable locations (for arrows and events), but it can be
improved.
llvm-svn: 164339
|
| |
|
|
| |
llvm-svn: 164335
|
| |
|
|
|
|
| |
as exclusive.
llvm-svn: 164332
|
| |
|
|
|
|
| |
lock expressions.
llvm-svn: 164324
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
but can be dereferenced to form an expression which does have viable begin/end
functions, then typo-correct the range, even if something else goes wrong with
the statement (such as inaccessible begin/end or the wrong type of loop
variable).
In order to ensure we recover correctly and produce any followup diagnostics in
this case, redo semantic analysis on the for-range statement outside of the
diagnostic trap, after issuing the typo-correction.
llvm-svn: 164323
|
| |
|
|
|
|
| |
Richard's comments. // rdar://12202422
llvm-svn: 164316
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is some really old code (took me a while to find the test cases) & the
diagnostic text is slightly incorrect (it should really only apply to
re/declarations/, redefinitions are an error regardless of whether the types
match). Not sure if anyone cares about it, though.
For now this just makes the diagnostic more clear in less obvious cases where
the type of a declaration might not be explicitly written (eg: because it
uses decltype)
llvm-svn: 164313
|
| |
|
|
|
|
|
|
| |
disambiguate them from integers.
Based on a patch by Olaf Krzikalla, UDL fixes by me.
llvm-svn: 164303
|
| |
|
|
|
|
| |
ASan doesn't play well with -D_FORTIFY_SOURCE, which is enabled by default starting at OS X 10.7
llvm-svn: 164299
|
| |
|
|
| |
llvm-svn: 164279
|
| |
|
|
|
|
|
|
|
|
|
| |
If someone provides their own function called 'strdup', or 'reallocf', or
even 'malloc', and we inlined it, the inlining should have given us all the
malloc-related information we need. If we then try to attach new information
to the return value, we could end up with spurious warnings.
<rdar://problem/12317671>
llvm-svn: 164276
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
removeDeadBindings."
While we definitely want this optimization in the future, we're not
currently handling constraints on symbolic /expressions/ correctly.
These should stay live even if the SymExpr itself is no longer referenced
because could recreate an identical SymExpr later. Only once the SymExpr
can no longer be recreated -- i.e. a component symbol is dead -- can we
safely remove the constraints on it.
This liveness issue is tracked by <rdar://problem/12333297>.
This reverts r163444 / 24c7f98828e039005cff3bd847e7ab404a6a09f8.
llvm-svn: 164275
|
| |
|
|
| |
llvm-svn: 164274
|
| |
|
|
|
|
| |
non-function friend declaration. Patch by Josh Magee!
llvm-svn: 164273
|
| |
|
|
|
|
| |
member function templates with an rvalue ref qualifier.
llvm-svn: 164267
|
| |
|
|
|
|
| |
functions.
llvm-svn: 164263
|
| |
|
|
| |
llvm-svn: 164260
|
| |
|
|
| |
llvm-svn: 164254
|
| |
|
|
| |
llvm-svn: 164253
|
| |
|
|
| |
llvm-svn: 164252
|
| |
|
|
|
|
| |
is placed on a function that has no path to the exit block.
llvm-svn: 164244
|
| |
|
|
|
|
|
| |
LOCKS_EXCLUDED is used on a method with a name that is is not a simple
identifier.
llvm-svn: 164242
|
| |
|
|
|
|
|
|
| |
clang has recently started to warn about the enum compares:
lib/Serialization/ASTWriter.cpp:2760:31: warning: comparison of literal 256 with expression of type
'clang::DeclarationName::NameKind' is always true [-Wtautological-constant-out-of-range-compare]
llvm-svn: 164220
|
| |
|
|
| |
llvm-svn: 164218
|
| |
|
|
|
|
| |
longer needed after the unused Context member was removed in r164104.
llvm-svn: 164196
|
| |
|
|
|
|
|
|
| |
definition info; it needs to be there because the mangler needs to
access it before we're finished defining the lambda class.
PR12808.
llvm-svn: 164186
|
| |
|
|
|
|
|
|
|
| |
The Freescale SDK is based on OpenEmbedded, and this might be useful
for other OpenEmbedded-based configurations as well.
With minor modifications, patch by Tobias von Koch!
llvm-svn: 164177
|
| |
|
|
|
|
| |
Patch by Tobias von Koch!
llvm-svn: 164176
|
| |
|
|
|
|
| |
relational operators of enumeration type. From the gcc testsuite.
llvm-svn: 164171
|
| |
|
|
|
|
| |
avoid a crash. PR13860.
llvm-svn: 164168
|
| |
|
|
| |
llvm-svn: 164145
|
| |
|
|
|
|
|
|
| |
integral expression have the obvious result.
Patch reviewed by John McCall off line.
// rdar://12202422
llvm-svn: 164143
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes Clang warn about self references in in-class initializers,
for example:
struct S {
int a = a + 42;
};
This basically just moves UninitializedFieldVisitor up a bit in
SemaDeclCXX.cpp, and adds a call to it from ActOnCXXInClassMemberInitializer.
llvm-svn: 164131
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Without this patch, the isDerivedFrom matcher asserts in the
"assert(ClassDecl != NULL);" in the new test, as a
DependentTemplateSpecilizationType is not a sub-type of
TemplateSpecializationType and also does not offer getAsCXXRecordDecl().
I am not sure why this did not cause problems before. It is now (after
the changed implementation of isDerivedFrom) easier to write a matcher
that actually gets into this branch of the code.
llvm-svn: 164127
|
| |
|
|
|
|
| |
changes.
llvm-svn: 164106
|
| |
|
|
|
|
| |
changes.
llvm-svn: 164103
|
| |
|
|
|
|
|
|
| |
start of a statement or the end of a compound-statement, diagnose the comma as
a typo for a semicolon. Patch by Ahmed Bougacha! Additional test cases and
minor refactoring by me.
llvm-svn: 164085
|
| |
|
|
|
|
|
|
| |
is no compelling argument that this is a generally useful warning,
and imposes a strong stylistic argument on code beyond what it was
intended to find warnings in.
llvm-svn: 164083
|
| |
|
|
|
|
|
| |
missing 'assign' attribute as it is determined by its
overridden property in primary class. // rdar://12214070
llvm-svn: 164080
|
| |
|
|
|
|
| |
argument names. // rdar://12263549
llvm-svn: 164077
|
| |
|
|
|
|
|
| |
checking on property declared in class extension.
// rdar://12214070
llvm-svn: 164053
|
| |
|
|
|
|
|
| |
between objc method parameter name and colon.
// rdar://12263549
llvm-svn: 164047
|
| |
|
|
|
|
|
|
|
|
|
| |
in ObjCMethods.
Extend FunctionTextRegion to represent ObjC methods as well as
functions. Note, it is not clear what type ObjCMethod region should
return. Since the type of the FunctionText region is not currently used,
defer solving this issue.
llvm-svn: 164046
|