| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
side-effect is not sequenced before its value computation. Also fix a
mishandling of ?: expressions where the condition is constant that was
exposed by the tests for this.
llvm-svn: 185035
|
|
|
|
|
|
|
| |
CheckParmForFunctionDef performs standard checks for type completeness
and other things like a destructor check for the MSVC++ ABI.
llvm-svn: 184740
|
|
|
|
|
|
| |
types and function pointer arrays.
llvm-svn: 184616
|
|
|
|
|
|
| |
Reviewed by Richard Smith.
llvm-svn: 184612
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Itanium destroys them in the caller at the end of the full expression,
but MSVC destroys them in the callee. This is further complicated by
the need to emit EH-only destructor cleanups in the caller.
This should help clang compile MSVC's debug iterators more correctly.
There is still an outstanding issue in PR5064 of a memcpy emitted by the
LLVM backend, which is not correct for C++ records.
Fixes PR16226.
Reviewers: rjmccall
Differential Revision: http://llvm-reviews.chandlerc.com/D929
llvm-svn: 184543
|
|
|
|
| |
llvm-svn: 184496
|
|
|
|
|
|
|
| |
operations in the case where evaluating a subexpression fails. No functionality
change, but test/Sema/many-logical-ops.c gets ~100x faster with this change.
llvm-svn: 184489
|
|
|
|
| |
llvm-svn: 184470
|
|
|
|
|
|
| |
whether to emit a -Wformat-security warning. <rdar://problem/14178260>.
llvm-svn: 184214
|
|
|
|
|
|
| |
The approach r183084 took was wrong, back it out.
llvm-svn: 183575
|
|
|
|
|
|
|
|
|
| |
In some cases, clang applies the C++ rules for computing the range of a
value when said value is an enum.
Instead, apply C semantics when in C mode.
llvm-svn: 183084
|
|
|
|
|
|
|
| |
does not support large load/store of atomic objects.
// rdar://13973577
llvm-svn: 182781
|
|
|
|
|
|
|
|
|
| |
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf 18.7p3
explicitly calls this (and some other things) out as undefined.
Also move 2 other existing warnings behind the new -Wvarargs flag.
llvm-svn: 182694
|
|
|
|
|
|
|
| |
working on new Objective-C array subscripting
syntax. // rdar://13855682
llvm-svn: 181940
|
|
|
|
|
|
|
| |
warning when property-dot syntax is used
with -Wsign-conversion. // rdar://13855394
llvm-svn: 181914
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- References to ObjC bit-field ivars are bit-field lvalues;
fixes rdar://13794269, which got me started down this.
- Introduce Expr::refersToBitField, switch a couple users to
it where semantically important, and comment the difference
between this and the existing API.
- Discourage Expr::getBitField by making it a bit longer and
less general-sounding.
- Lock down on const_casts of bit-field gl-values until we
hear back from the committee as to whether they're allowed.
llvm-svn: 181252
|
|
|
|
|
|
| |
Patch by Robert Wilhelm.
llvm-svn: 181164
|
|
|
|
|
|
|
|
| |
constructor from None
Patch by Robert Wilhelm.
llvm-svn: 181139
|
|
|
|
|
|
|
|
| |
in the parameter of a function definition. Currently,
it crashes in irgen if it is on other than the 1st dimension.
// rdar://13705391
llvm-svn: 180732
|
|
|
|
|
|
|
|
| |
Yes, this came from actual code.
Fixes <rdar://problem/13557053>.
llvm-svn: 179155
|
|
|
|
| |
llvm-svn: 178320
|
|
|
|
|
|
|
|
|
|
|
| |
likely be implicitly truncated:
* All forms of Bitwise-and, bitwise-or, and integer multiplication.
* The assignment form of integer addition, subtraction, and exclusive-or
* The RHS of the comma operator
* The LHS of left shifts.
llvm-svn: 178273
|
|
|
|
|
|
| |
Fixes <rdar://problem/13491605>.
llvm-svn: 177931
|
|
|
|
| |
llvm-svn: 177193
|
|
|
|
|
|
|
|
| |
the enum constant.
This is QoI. Fixes <rdar://problem/13076064>.
llvm-svn: 177190
|
|
|
|
|
|
| |
operations. // rdar://13423975
llvm-svn: 177181
|
|
|
|
| |
llvm-svn: 177163
|
|
|
|
|
|
| |
for integer overflow. // rdar://13423975
llvm-svn: 177162
|
|
|
|
|
|
| |
is non-anonymous or is defined in a typedef of itself.
llvm-svn: 176742
|
|
|
|
|
|
| |
These all appear in comments or (ironically) diagnostics output.
llvm-svn: 176383
|
|
|
|
|
|
| |
Post-commit CR feedback from Jordan Rose regarding r175594.
llvm-svn: 175679
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The TypeLoc hierarchy used the llvm::cast machinery to perform undefined
behavior by casting pointers/references to TypeLoc objects to derived types
and then using the derived copy constructors (or even returning pointers to
derived types that actually point to the original TypeLoc object).
Some context is in this thread:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056804.html
Though it's spread over a few months which can be hard to read in the mail
archive.
llvm-svn: 175462
|
|
|
|
| |
llvm-svn: 175331
|
|
|
|
|
|
|
| |
Nearly all of these changes are one-to-one replacements; the few that
aren't have to do with custom identifier validation.
llvm-svn: 174768
|
|
|
|
|
|
| |
rdar://13153516
llvm-svn: 174477
|
|
|
|
|
|
| |
This is required to use them in TableGen.
llvm-svn: 173924
|
|
|
|
|
|
|
|
| |
argument to be memset, check for its type to be complete
before calling Context.getTypeSize(PointeeTy) to prevent
crash. // rdar://13081751.
llvm-svn: 173872
|
|
|
|
|
|
| |
commented on and approved by Richard Smith.
llvm-svn: 173377
|
|
|
|
|
|
|
| |
nulls instead of limiting itself to the language-defined "null pointer
constant".
llvm-svn: 173227
|
|
|
|
|
|
| |
reduce stack usage and hopefully bring back the linux x86_64 buildbot.
llvm-svn: 172765
|
|
|
|
|
|
|
|
|
| |
unsequenced operations in the RHS. We don't compare the RHS with the rest of
the expression yet; such checks will need care to avoid diagnosing unsequenced
operations which are both in conditionally-evaluated subexpressions which
actually can't occur together, such as in '(b && ++x) + (!b && ++x)'.
llvm-svn: 172760
|
|
|
|
| |
llvm-svn: 172693
|
|
|
|
|
|
|
| |
expressions which have undefined behavior due to multiple unsequenced
modifications or an unsequenced modification and use of a variable.
llvm-svn: 172690
|
|
|
|
| |
llvm-svn: 172367
|
|
|
|
| |
llvm-svn: 171367
|
|
|
|
|
|
|
| |
This simplifies some diagnostic logic in checkUnsafeAssignLiteral(),
hopefully making it less error prone.
llvm-svn: 170945
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 170920
|
|
|
|
| |
llvm-svn: 170919
|
|
|
|
| |
llvm-svn: 170903
|