| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Credit goes to Timur Iskhodzhanov for finding the problem and solution.
llvm-svn: 179093
|
| |
|
|
|
|
| |
that force default PIC (like Darwin x86-64), otherwise specifying -fPIC will produce bogus unused argument warning
llvm-svn: 179092
|
| |
|
|
|
|
| |
-f(no-)sanitize-address-zero-base-shadow on Android
llvm-svn: 179089
|
| |
|
|
|
|
|
|
| |
when appropriate.
Differential Revision: http://llvm-reviews.chandlerc.com/D502
llvm-svn: 179082
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the analyzer used isIntegerType() everywhere, which uses the C
definition of "integer". The C++ predicate with the same behavior is
isIntegerOrUnscopedEnumerationType().
However, the analyzer is /really/ using this to ask if it's some sort of
"integrally representable" type, i.e. it should include C++11 scoped
enumerations as well. hasIntegerRepresentation() sounds like the right
predicate, but that includes vectors, which the analyzer represents by its
elements.
This commit audits all uses of isIntegerType() and replaces them with the
general isIntegerOrEnumerationType(), except in some specific cases where
it makes sense to exclude scoped enumerations, or any enumerations. These
cases now use isIntegerOrUnscopedEnumerationType() and getAs<BuiltinType>()
plus BuiltinType::isInteger().
isIntegerType() is hereby banned in the analyzer - lib/StaticAnalysis and
include/clang/StaticAnalysis. :-)
Fixes real assertion failures. PR15703 / <rdar://problem/12350701>
llvm-svn: 179081
|
| |
|
|
|
|
|
|
| |
expression, look through pseudo-object expressions.
rdar://13602832
llvm-svn: 179080
|
| |
|
|
|
|
| |
Fixes the bootstrap regression I introduced in r179067.
llvm-svn: 179079
|
| |
|
|
|
|
| |
Fixes rdar://13589856
llvm-svn: 179078
|
| |
|
|
|
|
|
|
|
|
|
| |
report mismatched deallocator
Test that the path notes do not change. I don’t think we should print a note on escape.
Also, I’ve removed a check that assumed that the family stored in the RefStete could be
AF_None and added an assert in the constructor.
llvm-svn: 179075
|
| |
|
|
|
|
|
|
| |
that method gets a warning.
Test case from <rdar://problem/11627873>.
llvm-svn: 179070
|
| |
|
|
|
|
|
|
|
| |
It turns out that the optimizer can't eliminate this without extra
information, for which there's a separate bug.
rdar://13588325
llvm-svn: 179069
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
have integral values.
We were assuming that any expression used as a converted constant
expression would either not have a folded constant value or would be
an integer, which is not the case for some ill-formed constant
expressions. Because converted constant expressions are only used
where integral values are expected, we can simply treat this as an
error path. If that ever changes, we'll need to widen the interface of
Sema::CheckConvertedConstantExpression() anyway.
llvm-svn: 179068
|
| |
|
|
|
|
|
|
|
|
|
|
| |
contexts not represented by scopes.
This fixes a regression I introduced in r178136, where we would not
consider the using directives from the semantic declaration contexts
that aren't represented by the lexical scopes (Scope) when performing
unqualified name lookup. This lead to horribly funny diagnostics like
"no identifier named 'foo'; did you mean 'foo'?".
llvm-svn: 179067
|
| |
|
|
|
|
| |
-fno-delayed-template-parsing.
llvm-svn: 179065
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Preserve line breaks after function-like macro usages without
semicolon, e.g.:
QQQ(xxx)
class X {
};
Reviewers: djasper, klimek
Reviewed By: djasper
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D638
llvm-svn: 179064
|
| |
|
|
| |
llvm-svn: 179061
|
| |
|
|
|
|
|
| |
Remove the custom lowering code dealing with it, disallow it in PNaclTargetInfo
and adjust tests accordingly.
llvm-svn: 179059
|
| |
|
|
|
|
| |
to 256, since we're blowing the stack for a trivial "factorial" class template.
llvm-svn: 179057
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When two template decls with the same name are used in this diagnostic,
force them to print their qualified names. This changes the bad message of:
candidate template ignored: could not match 'array' against 'array'
to the better message of:
candidate template ignored: could not match 'NS2::array' against 'NS1::array'
llvm-svn: 179056
|
| |
|
|
| |
llvm-svn: 179055
|
| |
|
|
|
|
| |
a non-variable iteration declaration.
llvm-svn: 179053
|
| |
|
|
| |
llvm-svn: 179052
|
| |
|
|
|
|
| |
order.
llvm-svn: 179050
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The idea is to indent according to operator precedence and pretty much
identical to how stuff would be indented with parenthesis.
Before:
bool value = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ==
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb &&
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >
ccccccccccccccccccccccccccccccccccccccccc;
After:
bool value = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ==
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb &&
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >
ccccccccccccccccccccccccccccccccccccccccc;
llvm-svn: 179049
|
| |
|
|
|
|
| |
These checks are enabled with the -Wthread-safety-beta flag.
llvm-svn: 179046
|
| |
|
|
|
|
| |
// rdar://12379114
llvm-svn: 179042
|
| |
|
|
|
|
|
|
| |
is no longer a win of GCC.
This whole doc should really be looked at.
llvm-svn: 179040
|
| |
|
|
|
|
| |
// rdar://12379114
llvm-svn: 179039
|
| |
|
|
|
|
| |
for loop that end up being Objective-C fast enumeration loops.
llvm-svn: 179037
|
| |
|
|
|
|
| |
that is actually an Objective-C fast enumeration loop.
llvm-svn: 179035
|
| |
|
|
| |
llvm-svn: 179034
|
| |
|
|
| |
llvm-svn: 179031
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
functions to the conversion function set eagerly.
This slightly propagates an existing hack that delays when we provide
access specifiers for the visible conversion functions of a class by
copying the available access specifier early. The only client this
affects is LLDB, which tends to discover and add conversion functions
after the class is technically "complete". As such, the only
observable difference is in LLDB, so the testing will go there.
llvm-svn: 179029
|
| |
|
|
| |
llvm-svn: 179027
|
| |
|
|
|
|
|
| |
The styles are now documented with the -style option. This fixes
llvm.org/PR15689.
llvm-svn: 179017
|
| |
|
|
| |
llvm-svn: 179016
|
| |
|
|
| |
llvm-svn: 179015
|
| |
|
|
|
|
|
|
|
| |
invalid enum.
Fixes PR15693. A null check on a pointer returned from cast<> is a very dubious
construct, do we have a checker for this somewhere?
llvm-svn: 178975
|
| |
|
|
| |
llvm-svn: 178952
|
| |
|
|
|
|
|
|
|
|
| |
linkage specification, and is marked as __attribute__((used)), try to also give
it the unmangled name (by emitting an internal linkage alias) if nothing else
within the translation unit would use that name. This allows inline asm in that
translation unit to use the entity via its unmangled name, which people
apparently rely on.
llvm-svn: 178950
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is important because sometimes two nodes are identical, except the
second one is a sink.
This bug has probably been around for a while, but it wouldn't have been an
issue in the old report graph algorithm. I'm ashamed to say I actually looked
at this the first time around and thought it would never be a problem...and
then didn't include an assertion to back that up.
PR15684
llvm-svn: 178944
|
| |
|
|
|
|
| |
rdar://13181413
llvm-svn: 178942
|
| |
|
|
|
|
| |
lifetime has been extended by reference binding.
llvm-svn: 178939
|
| |
|
|
|
|
| |
As per Ted’s suggestion!
llvm-svn: 178938
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New rule:
- Method decls in @implementation are considered "redeclarations"
and inherit deprecated/availability from the @interface.
- All other cases are consider overrides, which do not inherit
deprecated/availability. For example:
(a) @interface redeclares a method in an adopted protocol.
(b) A subclass redeclares a method in a superclass.
(c) A protocol redeclares a method from another protocol it adopts.
The idea is that API authors should have the ability to easily
move availability/deprecated up and down a class/protocol hierarchy.
A redeclaration means that the availability/deprecation is a blank
slate.
Fixes <rdar://problem/13574571>
llvm-svn: 178937
|
| |
|
|
| |
llvm-svn: 178935
|
| |
|
|
| |
llvm-svn: 178934
|
| |
|
|
|
|
| |
state and removing redundant code.
llvm-svn: 178933
|
| |
|
|
|
|
|
| |
more information to the notes. This information is already present on other
diagnostic messages that involves overloads.
llvm-svn: 178923
|
| |
|
|
|
|
|
|
| |
out-of-line member functions.
rdar://13535645
llvm-svn: 178911
|