| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
CodeGenFunction::pushIrregularPartialArrayCleanup() and CodeGenFunction::pushRegularPartialArrayCleanup(). [-Wdocumentation]
/// \param array - a value of type elementType*
/// \param destructionKind - the kind of destruction required
/// \param initializedElementCount - a value of type size_t* holding the number of successfully-constructed elements
llvm-svn: 171013
|
| |
|
|
|
|
|
|
| |
DiagnosticRenderer::emitMacroExpansions(). [-Wdocumentation]
/// \param MacroSkipEnd The depth to stop skipping macro expansions.
llvm-svn: 171012
|
| |
|
|
| |
llvm-svn: 171011
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch, splitting after binary operators has a panelty corresponding
to the operator's precedence. We used to ignore this and eagerly format like:
if (aaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbbbbbbbbb &&
ccccccccccccccccccccccccc) { .. }
With this patch, this becomes:
if (aaaaaaaaaaaaaaaaaaaaaaaaa ||
bbbbbbbbbbbbbbbbbbbbbbbbb && ccccccccccccccccccccccccc) { .. }
llvm-svn: 171007
|
| |
|
|
|
|
|
|
| |
"return a*b;" was formatted as "return a *b;" and is now formatted as "return a * b;".
Fixes PR14687 partially.
llvm-svn: 170993
|
| |
|
|
| |
llvm-svn: 170992
|
| |
|
|
|
|
| |
reached EOF and did not expand the argument into the source context.
llvm-svn: 170980
|
| |
|
|
|
|
|
|
|
|
|
| |
to the
code-completion results, the SourceManager state may be slightly
different when code-completing.
And we don't even care for diagnostics when code-completing, anyway.
llvm-svn: 170979
|
| |
|
|
|
|
| |
it might instead be a TranslationUnitDecl.
llvm-svn: 170976
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This was removed with -Wunique-enum, which is still removed. The
corresponding thread on cfe-comments for that warning is here:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-September/024224.html
If we get specific user feedback for -Wduplicate-enum we can evaluate
whether or not to keep it.
llvm-svn: 170974
|
| |
|
|
|
|
|
|
| |
objc_no_direct_instance_variable_assignment.
Fixes <rdar://problem/12927551>.
llvm-svn: 170971
|
| |
|
|
|
|
| |
The new callback greatly simplifies the checker.
llvm-svn: 170969
|
| |
|
|
|
|
|
| |
case we can't find an exact width to use. Fixes crash in
<rdar://problem/12456626>.
llvm-svn: 170951
|
| |
|
|
|
|
|
| |
This simplifies some diagnostic logic in checkUnsafeAssignLiteral(),
hopefully making it less error prone.
llvm-svn: 170945
|
| |
|
|
| |
llvm-svn: 170938
|
| |
|
|
| |
llvm-svn: 170933
|
| |
|
|
|
|
|
|
|
|
| |
Along the way, fix a bug in CheckLiteralKind(), previously in diagnoseObjCLiteralComparison, where we didn't ignore parentheses
in boxed expressions for purpose of classification.
In other words, both @42 and @(42) should be classified as numeric
literals.
llvm-svn: 170931
|
| |
|
|
|
|
|
|
| |
with other diagnostics.
No immediate (intended) functionality change.
llvm-svn: 170930
|
| |
|
|
|
|
|
|
|
| |
found by running -ast-print on all-std-headers.cpp
which caused it to go into infinite loop. Now
-ast-print prints all declarations found in
all-std-headers.cpp.
llvm-svn: 170928
|
| |
|
|
| |
llvm-svn: 170925
|
| |
|
|
| |
llvm-svn: 170924
|
| |
|
|
| |
llvm-svn: 170920
|
| |
|
|
| |
llvm-svn: 170919
|
| |
|
|
| |
llvm-svn: 170918
|
| |
|
|
| |
llvm-svn: 170914
|
| |
|
|
|
|
|
|
|
|
| |
This fixes PR14683. We used to format like this:
#include <a / b>
And this patch changes this to:
#include <a/b>
llvm-svn: 170910
|
| |
|
|
| |
llvm-svn: 170909
|
| |
|
|
| |
llvm-svn: 170907
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deterministic.
Commit message for r170826:
[analyzer] Traverse the Call Graph in topological order.
Modify the call graph by removing the parentless nodes. Instead all
nodes are children of root to ensure they are all reachable. Remove the
tracking of nodes that are "top level" or global. This information is
not used and can be obtained from the Decls stored inside
CallGraphNodes.
Instead of existing ordering hacks, analyze the functions in topological
order over the Call Graph.
Together with the addition of devirtualizable ObjC message sends and
blocks to the call graph, this gives around 6% performance improvement
on several large ObjC benchmarks.
llvm-svn: 170906
|
| |
|
|
| |
llvm-svn: 170905
|
| |
|
|
| |
llvm-svn: 170904
|
| |
|
|
| |
llvm-svn: 170903
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We used to not really format them. Now we do:
for (MachineBasicBlock::succ_iterator SI = BB->succ_begin(),
SE = BB->succ_end();
SI != SE; ++SI) {
This is just one example and I am sure we still mess some of them up, but it
is a step forward.
llvm-svn: 170899
|
| |
|
|
| |
llvm-svn: 170890
|
| |
|
|
|
|
|
| |
No indented functional changes other than handling more operators
correctly.
llvm-svn: 170875
|
| |
|
|
|
|
| |
Also, some (automated) formatting fixes and slight cleanups.
llvm-svn: 170873
|
| |
|
|
|
|
|
|
| |
CXXScalarValueInitExpr (or an ImplicitValueInitExpr), strip it back down to an
empty pair of parentheses so that the initialization code can tell that we're
performing value-initialization.
llvm-svn: 170867
|
| |
|
|
|
|
|
|
|
|
| |
weak reference.
Thanks to Jordan Rose and John McCall for their sage code review.
Fixes <rdar://problem/12569201>.
llvm-svn: 170864
|
| |
|
|
|
|
|
|
| |
This is just a minor bit of refactoring, but it is nice cleanup for
the subsequent patch that adds warning support for assigning literals
to weak variables.
llvm-svn: 170863
|
| |
|
|
|
|
| |
a value-initialized bool!
llvm-svn: 170837
|
| |
|
|
|
|
|
|
| |
emitting a null constant of type pointer-to-data-member."
It broke stage2.
llvm-svn: 170835
|
| |
|
|
|
|
| |
a not-fully-formed macro invocation during code-completion.
llvm-svn: 170833
|
| |
|
|
| |
llvm-svn: 170832
|
| |
|
|
|
|
|
|
| |
./bin/clang -cc1 -internal-isystem /home/espindola/llvm/build/lib/clang/3.3/include/ -analyze -analyzer-checker=debug.DumpCallGraph /home/espindola/llvm/clang/test/Analysis/debug-CallGraph.c -fblocks
changes in each run.
llvm-svn: 170829
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we are visiting the extern declaration of 'i' in
static int i = 99;
int foo() {
extern int i;
return i;
}
We should not try to handle it as if it was an function static. That is, we
must consider the written storage class.
Fixing this then exposes that the assert in EmitGlobalVarDeclLValue and the
if leading to its call are not completely accurate. They were passing before
because the second decl was marked as having external storage. I changed them
to check the linkage, which I find easier to understand.
Last but not least, there is something strange going on with cuda and opencl.
My guess is that the linkage computation for these languages needs to be
audited, but I didn't want to change that in this patch so I just updated
the storage classes to keep the current behavior.
Thanks to Reed Kotler for reporting this.
llvm-svn: 170827
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify the call graph by removing the parentless nodes. Instead all
nodes are children of root to ensure they are all reachable. Remove the
tracking of nodes that are "top level" or global. This information is
not used and can be obtained from the Decls stored inside
CallGraphNodes.
Instead of existing ordering hacks, analyze the functions in topological
order over the Call Graph.
Together with the addition of devirtualizable ObjC message sends and
blocks to the call graph, this gives around 6% performance improvement
on several large ObjC benchmarks.
llvm-svn: 170826
|
| |
|
|
|
|
|
|
|
|
|
| |
This paves the road for constructing a better function dependency graph.
If we analyze a function before the functions it calls and inlines,
there is more opportunity for optimization.
Note, we add call edges to the called methods that correspond to
function definitions (declarations with bodies).
llvm-svn: 170825
|
| |
|
|
|
|
|
|
| |
the macro invocation is not fully formed.
rdar://11290992
llvm-svn: 170824
|
| |
|
|
| |
llvm-svn: 170817
|
| |
|
|
|
|
| |
constant of type pointer-to-data-member.
llvm-svn: 170806
|