| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
and late-parsed templates. This is a slight tweak of r180708; It avoids incrementing depth when non-template local classes nested within member templates of local classes are encountered.
This patch was LGTM'd by Doug http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130506/079656.html and passed the regression tests that normally pass (i.e. excluding many Module and Index tests on Windows that fail regardless)
llvm-svn: 183618
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r183614.
It broke test/Sema/block-printf-attribute-1.c on non-Windows platforms,
and the fix is not trivial.
llvm-svn: 183616
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This helps preserve the type-as-written in the AST, which we need for
MSVC mangling. In particular, we need to preserve the types of array
parameters in function pointer types.
The essence of this change is:
- QualType ArgTy = Param->getType();
+ QualType ArgTy = Param->getTypeSourceInfo()->getType();
... followed by the adjustment in ActOnFunctionDeclarator().
Differential Revision: http://llvm-reviews.chandlerc.com/D883
llvm-svn: 183614
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D586
llvm-svn: 183609
|
| |
|
|
| |
llvm-svn: 183602
|
| |
|
|
|
|
| |
Based on feedback from Jordan.
llvm-svn: 183600
|
| |
|
|
|
|
|
|
|
| |
We drew the diagnostic edges to wrong statements in cases the note was on a macro.
The fix is simple, but seems to work just fine for a whole bunch of test cases (plist-macros.cpp).
Also, removes an unnecessary edge in edges-new.mm, when function signature starts with a macro.
llvm-svn: 183599
|
| |
|
|
| |
llvm-svn: 183598
|
| |
|
|
|
|
|
|
|
| |
Two variables with the same name declared in two if conditions in the same
scope are no longer coalesced into one.
rdar://problem/14024005
llvm-svn: 183597
|
| |
|
|
|
|
| |
created through binding a reference-to-array to an initializer list.
llvm-svn: 183594
|
| |
|
|
|
|
|
|
|
|
| |
sure to do this always, this matches the behavior for the gcc driver.
Fixes PR16251.
Based on a patch by Qiao Yang.
llvm-svn: 183591
|
| |
|
|
| |
llvm-svn: 183590
|
| |
|
|
|
|
|
|
| |
headers and system modules are equivalent.
Fixes <rdar://problem/14025673>.
llvm-svn: 183588
|
| |
|
|
| |
llvm-svn: 183586
|
| |
|
|
|
|
| |
emmintrin.h forwarding.
llvm-svn: 183585
|
| |
|
|
| |
llvm-svn: 183583
|
| |
|
|
|
|
|
|
|
|
| |
- factor the name construction part out from constructSetterName
- rename constructSetterName to the more appropriate constructSetterSelector
no functionality change intended.
rdar://problem/14035789
llvm-svn: 183582
|
| |
|
|
|
|
| |
The approach r183084 took was wrong, back it out.
llvm-svn: 183575
|
| |
|
|
| |
llvm-svn: 183564
|
| |
|
|
|
|
|
|
|
| |
correctly in the presence of qualified types.
(I had to change the unittest because it was trying to cast a
QualifiedTypeLoc to TemplateSpecializationTypeLoc.)
llvm-svn: 183563
|
| |
|
|
|
|
|
| |
property auto-synthesis before knowingit it is to be
auto-synthesized. // rdar://14094682
llvm-svn: 183556
|
| |
|
|
| |
llvm-svn: 183550
|
| |
|
|
|
|
| |
of properties. Fixes // rdar://14085456
llvm-svn: 183542
|
| |
|
|
|
|
|
|
| |
callees of SourceManager::getSLocEntryByID().
Also add an 'Invalid' check in SourceManager::computeMacroArgsCache().
llvm-svn: 183538
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Remove them from the TokenText as well.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D935
llvm-svn: 183536
|
| |
|
|
|
|
| |
Patch by Sukolsak Sakshuwong!
llvm-svn: 183535
|
| |
|
|
|
|
|
|
|
| |
// rdar://14085217.
e-This line, and those below, will be ignored--
M lib/Sema/SemaExpr.cpp
llvm-svn: 183531
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Introduced two new style parameters: PenaltyBreakComment and
PenaltyBreakString. Add penalty for each character of a breakable token beyond
the column limit (this relates mainly to comments, as they are broken only on
whitespace). Tuned PenaltyBreakComment to prefer comment breaking over breaking
inside most binary expressions.
Fixed a bug that prevented *, & and && from being considered TT_BinaryOperator
in the presense of adjacent comments.
Reviewers: klimek, djasper
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D933
llvm-svn: 183530
|
| |
|
|
|
|
|
|
|
| |
This introduces bugs in TemplateSpecializationTypeLoc's angle bracket
locations.
Regression test follows in a subsequent commit.
llvm-svn: 183513
|
| |
|
|
|
|
|
|
| |
places which weren't setting it up properly. This allows us to get the right
cv-qualifiers for 'this' when it appears outside a method body in a class
template.
llvm-svn: 183483
|
| |
|
|
|
|
| |
invalid field; make sure we don't try. Fixes <rdar://problem/14084171>.
llvm-svn: 183479
|
| |
|
|
| |
llvm-svn: 183475
|
| |
|
|
|
|
|
|
| |
the default names, not just when the isImplicit flag is set.
rdar://problem/14035789
llvm-svn: 183474
|
| |
|
|
| |
llvm-svn: 183473
|
| |
|
|
|
|
|
|
|
|
| |
is evaluated in a condition expression and then
dereferenced to envoke the block. This is
pr15663 and I applied a slight variation of the
patch with a test case. (patch is from
Arthur O'Dwyer). Also // rdar://14085217
llvm-svn: 183471
|
| |
|
|
|
|
|
|
| |
X86's 'y' inline assembly constraint represents an MMX register, this change
prevents Clang from hitting an assertion when passed an incompatible type to
deal with.
llvm-svn: 183467
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
correctly aligned. Not performing such computations led to misaligned loads,
which crash on some platforms and are generally bad on other platforms.
The implementation of TypeLocBuilder::pushImpl is rather messy; code using
TypeLocBuilder accidentally assumes that partial TypeLocs are
laid out like a complete TypeLoc. As a followup, I intend to work on
fixing the TypeLocBuilder API to avoid exposing partial TypeLocs; this should
substantially simplify the implemementation.
Fixes PR16144.
llvm-svn: 183466
|
| |
|
|
|
|
|
|
| |
Disallowing deriving from classes that have private virtual base classes
except in instances where the deriving class would be able to cast
itself to the private virtual base via a different derivation.
llvm-svn: 183462
|
| |
|
|
| |
llvm-svn: 183455
|
| |
|
|
|
|
|
|
|
|
|
| |
the BugReport
The function in which we were doing it used to be conditionalized. Add a new unconditional
cleanup step.
This fixes PR16227 (radar://14073870) - a crash when generating html output for one of the test files.
llvm-svn: 183451
|
| |
|
|
| |
llvm-svn: 183450
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously our edges were completely broken here; now, the final result
is a very simple set of edges in most cases: one up to the "for" keyword
for context, and one into the body of the loop. This matches the behavior
for ObjC for-in loops.
In the AST, however, CXXForRangeStmts are handled very differently from
ObjCForCollectionStmts. Since they are specified in terms of equivalent
statements in the C++ standard, we actually have implicit AST nodes for
all of the semantic statements. This makes evaluation very easy, but
diagnostic locations a bit trickier. Fortunately, the problem can be
generally defined away by marking all of the implicit statements as
part of the top-level for-range statement.
One of the implicit statements in a for-range statement is the declaration
of implicit iterators __begin and __end. The CFG synthesizes two
separate DeclStmts to match each of these decls, but until now these
synthetic DeclStmts weren't in the function's ParentMap. Now, the CFG
keeps track of its synthetic statements, and the AnalysisDeclContext will
make sure to add them to the ParentMap.
<rdar://problem/14038483>
llvm-svn: 183449
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before, clang-format would happily move a trailing block comment to a
new line, which normally changes the perceived binding of that comment.
E.g., it would move:
void f() { /* comment */
...
}
to:
void f() {
/* comment */
...
}
llvm-svn: 183420
|
| |
|
|
|
|
|
|
|
|
| |
constant. Also fix some spelling mistakes and formatting issues.
Reviewed by Richard Smith over IRC.
Fixes PR15069.
llvm-svn: 183409
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch creates a new ArgumentsAdjuster, which removes all -o parameters from
the command line. This adjuster is inserted by default into the ClangTool pipeline.
Reviewers: klimek
CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D925
llvm-svn: 183398
|
| |
|
|
|
|
|
| |
just copy-list-initialization in a variable declaration. This effectively
reverts r142147.
llvm-svn: 183397
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This became allowed by accident in r131201, but triggers an assert.
That patch added an exception to allow conversion from pointers to
narrow integral types for MSVC compatibility. However, a pointer can
already be converted to bool in a civilized manner; allowing conversion
via reinterpret_cast is a bad idea.
Fixes PR16222.
llvm-svn: 183394
|
| |
|
|
|
|
|
|
| |
The leading "}" in the construct "} else if (..) {" was confusing the
expression parser. Thus, no fake parentheses were generated and the
indentation was broken in some cases.
llvm-svn: 183393
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
return (my_int) aaaa;
template <> void f<int>(int i)SOME_ANNOTATION;
f("aaaa" SOME_MACRO(aaaa)"aaaa");
After:
return (my_int)aaaa;
template <> void f<int>(int i) SOME_ANNOTATION;
f("aaaa" SOME_MACRO(aaaa) "aaaa");
llvm-svn: 183389
|
| |
|
|
|
|
|
|
| |
must be initialized by a constant expression (not just a core constant
expression), because we're going to emit it as a global. Core issue for this is
pending.
llvm-svn: 183388
|