| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
at it.
llvm-svn: 86243
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* If the unsigned type is smaller than the signed type, never warn, because
its value will not change when zero-extended to the larger type.
* If we're testing for (in)equality, and the unsigned value is an integer
constant whose sign bit is not set, never warn, because even though the
signed value might change, it can't affect the result of the equality.
Also make the comparison test cases much more rigorous, and have them expose
the subtle differences between C and C++ here.
llvm-svn: 86242
|
| |
|
|
| |
llvm-svn: 86240
|
| |
|
|
|
|
|
|
|
|
|
| |
get_origin->x
where get_origin is actually a function and the user has forgotten the
parentheses. Instead of giving a lame note for the fix-it, give a
full-fledge error, early, then build the call expression to try to
recover.
llvm-svn: 86238
|
| |
|
|
|
|
| |
Fixes PR5210
llvm-svn: 86234
|
| |
|
|
|
|
| |
initializer it needs to be destroyed at the end of the constructor.
llvm-svn: 86230
|
| |
|
|
|
|
| |
PR5077.
llvm-svn: 86225
|
| |
|
|
| |
llvm-svn: 86224
|
| |
|
|
| |
llvm-svn: 86222
|
| |
|
|
| |
llvm-svn: 86218
|
| |
|
|
|
|
| |
class that is overridden in a base that isn't morally virtual.
llvm-svn: 86217
|
| |
|
|
|
|
|
|
|
| |
stack variable or a garbage
value into their own respective subclasses of Checker (and put them in .cpp files where their
implementation details are hidden from GRExprEngine).
llvm-svn: 86215
|
| |
|
|
|
|
|
|
|
|
| |
class type, don't perform the array-to-pointer or function-to-pointer
conversions, because we may end up binding a reference to a function
or array.
With this change, FileCheck now passes -fsyntax-only!
llvm-svn: 86211
|
| |
|
|
|
|
|
| |
implicit conversion sequence, check the validity of this conversion
and then perform it.
llvm-svn: 86210
|
| |
|
|
| |
llvm-svn: 86209
|
| |
|
|
|
|
| |
DeferenceChecker and friends so that they always report the same bug type.
llvm-svn: 86208
|
| |
|
|
|
|
|
| |
It has to do with vararg constructors used as conversion
functions. Code gen needs work. This is WIP.
llvm-svn: 86207
|
| |
|
|
|
|
| |
type-dependent initializers.
llvm-svn: 86197
|
| |
|
|
| |
llvm-svn: 86195
|
| |
|
|
| |
llvm-svn: 86183
|
| |
|
|
| |
llvm-svn: 86177
|
| |
|
|
|
|
| |
just for the unqualified, unaliased bool.
llvm-svn: 86174
|
| |
|
|
|
|
| |
and should especially not try to evaluate them.
llvm-svn: 86173
|
| |
|
|
|
|
| |
enum/class/struct/union specifier; in invalid code, we may also see ClassTemplateDecls.
llvm-svn: 86171
|
| |
|
|
| |
llvm-svn: 86167
|
| |
|
|
|
|
| |
C++. Fixed PR5401
llvm-svn: 86165
|
| |
|
|
| |
llvm-svn: 86156
|
| |
|
|
|
|
| |
initialization before main. Fixes pr5396.
llvm-svn: 86145
|
| |
|
|
|
|
|
| |
always zero in this context" warning logic. Also, make the diagnostic
itself more precise when referring to pointer values ("NULL" vs. "zero").
llvm-svn: 86143
|
| |
|
|
| |
llvm-svn: 86142
|
| |
|
|
|
|
| |
pointers. Otherwise, subscripting an array leads to no candidates at all. Fixes PR5360.
llvm-svn: 86140
|
| |
|
|
|
|
| |
This fixes PR5048. Also fix a bug where zero-sized arrays weren't warned about when the size was unsigned.
llvm-svn: 86136
|
| |
|
|
| |
llvm-svn: 86135
|
| |
|
|
|
|
|
|
|
|
|
|
| |
(without complaining if it fails) to get proper semantics: reference
binding with a derived-to-base conversion and the enumeration of
constructors for user-defined conversions. There are probably more
cases to fix, but my prior attempt at statically ensuring that
complete-type checking always happens failed. Perhaps I'll try again.
With this change, Clang can parse include/llvm/*.h!
llvm-svn: 86129
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DiagnoseSignCompare into Sema::CheckSignCompare and call it from more places.
Add some enumerator tests. These seem to expose some oddities in the
types we're converting C++ enumerators to; in particular, they're converting
to unsigned before int, which seems to contradict 4.5 [conv.prom] p2.
Note to self: stop baiting Doug in my commit messages.
llvm-svn: 86128
|
| |
|
|
| |
llvm-svn: 86127
|
| |
|
|
|
|
| |
in covariant thunks that return references.
llvm-svn: 86121
|
| |
|
|
|
|
| |
pointers are returned.
llvm-svn: 86120
|
| |
|
|
| |
llvm-svn: 86116
|
| |
|
|
|
|
|
| |
invariants (diagnostics with source informations must occur between
{Begin,End}SourceFile).
llvm-svn: 86113
|
| |
|
|
|
|
| |
Preprocessor&, and simplify.
llvm-svn: 86112
|
| |
|
|
| |
llvm-svn: 86111
|
| |
|
|
|
|
|
|
| |
migrate work in the destructors of PathDiagnosticClients from their
destructors to FlushReports(). The destructors now currently call
FlushReports(); this will be fixed in a subsequent patch.
llvm-svn: 86108
|
| |
|
|
|
|
|
|
|
| |
This is conceptually correct, but adds a huge hack to HighlightMacros which is
in fact doing all sorts of mutation to the Preprocessor. See FIXME.
Chris, please review.
llvm-svn: 86107
|
| |
|
|
|
|
|
|
|
| |
a little fuzzy, but conceptually it's just uniquing the identifier.
Chris, please review. I debated splitting into const/non-const versions where
the const one propogated constness to the resulting IdentifierInfo*.
llvm-svn: 86106
|
| |
|
|
| |
llvm-svn: 86105
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
still be dependent or invoke an overloaded operator. Previously, we
only supported builtin operators.
BinaryOperator/CompoundAssignOperator didn't have this issue because
we always built a CXXOperatorCallExpr node, even when name lookup
didn't find any functions to save until instantiation time. Now, that
code builds a BinaryOperator or CompoundAssignOperator rather than a
CXXOperatorCallExpr, to save some space.
llvm-svn: 86087
|
| |
|
|
|
|
|
|
| |
an "assign expression", representing the expressions where the value
binding occurs and the assignment takes place respectively. These are
largely syntactic clues for better error reporting.
llvm-svn: 86084
|
| |
|
|
|
|
|
|
| |
Conditional operands are next.
Fixes part of rdar://problem/7289584.
llvm-svn: 86083
|
| |
|
|
| |
llvm-svn: 86079
|