Douglas Gregor
f58ff32c16
Integral-to-pointer conversions are not always null -> member pointer
...
conversions. Fixes PR7443.
llvm-svn: 110519
2010-08-07 13:36:37 +00:00
Douglas Gregor
114e55df5b
Fix an Objective-C crasher, PR7839.
...
llvm-svn: 110515
2010-08-07 12:29:18 +00:00
Douglas Gregor
8b2d2fe234
Allow reference binding of a reference of Objective-C object type to
...
an lvalue of another, compatible Objective-C object type (e.g., a
subclass). Introduce a new initialization sequence step kind to
describe this binding, along with a new cast kind. Fixes PR7741.
llvm-svn: 110513
2010-08-07 11:51:51 +00:00
John McCall
7cd1d97e33
Inline a special case of EmitAggregateCopy into EmitNullInitialization
...
to avoid the awesome-but-wrong-in-this-case assertion in the canon EAC.
Fixes PR7834.
Also fix a subtle address-space bug in the memset path.
llvm-svn: 110511
2010-08-07 08:21:30 +00:00
John McCall
853700437b
Note that a CXXConstructExpr is zeroing when dumping it.
...
llvm-svn: 110510
2010-08-07 06:38:55 +00:00
John McCall
cf14216509
Store inheritance paths after CastExprs instead of inside them.
...
This takes some trickery since CastExpr has subclasses (and indeed,
is abstract).
Also, smoosh the CastKind into the bitfield from Expr.
Drops two words of storage from Expr in the common case of expressions
which don't need inheritance paths. Avoids a separate allocation and
another word of overhead in cases needing inheritance paths. Also has
the advantage of not leaking memory, since destructors for AST nodes are
never run.
llvm-svn: 110507
2010-08-07 06:22:56 +00:00
Chris Lattner
8139c98cf9
Correct -ftrapv to trap on errors, instead of calling the
...
__overflow_handler entrypoint that David Chisnall made up.
Calling __overflow_handler is not part of the contract of
-ftrapv provided by GCC, and should never have been checked
in in the first place.
According to:
http://permalink.gmane.org/gmane.comp.compilers.clang.devel/8699
David is using this for some of arbitrary precision integer stuff
or something, which is not an appropriate thing to implement on
this.
llvm-svn: 110490
2010-08-07 00:20:46 +00:00
Eli Friedman
964dbda0e9
PR7837: For qualified id's, make sure the decl context is complete if not
...
dependent in ActOnIdExpression. (This issue only shows up with member
operators because an operator is never a type.)
llvm-svn: 110486
2010-08-06 23:41:47 +00:00
Tom Care
925501c548
Removed IdempotentOperationChecker from default analysis and returned back to a flag (-analyzer-check-idempotent-operations)
...
- Added IdempotentOperationChecker to experimental analyses for testing purposes
- Updated test cases to explictly call the checker
llvm-svn: 110482
2010-08-06 22:23:07 +00:00
Ted Kremenek
0bbf24d579
Fix 80 col. violations.
...
llvm-svn: 110473
2010-08-06 21:12:55 +00:00
Ted Kremenek
63dc1f4694
Nest variable declaration into into 'if' condition, thus restricting the scope of the variable and condensing the code.
...
llvm-svn: 110472
2010-08-06 21:12:53 +00:00
Ted Kremenek
b0c67c85db
Use 'GenerateNode()' instead of 'GenerateSink()' when reporting a leak. A leak is not a hard enough bug to stop analyzing a path.
...
llvm-svn: 110471
2010-08-06 21:12:49 +00:00
Eli Friedman
165301d38d
Initialize variable to work around warning; unfortunately, there isn't any
...
way to tell gcc "really, values outside the enum aren't valid".
llvm-svn: 110450
2010-08-06 16:37:05 +00:00
Fariborz Jahanian
f95e358004
Finishing up block variable layout API by supporting
...
union type variables and their nesting inside other
aggregate types.
llvm-svn: 110448
2010-08-06 16:28:55 +00:00
Douglas Gregor
a49ccfeeb2
The pre-increment/pre-decrement grammar in C++ differs from that in C,
...
but we were parsing the C grammar. Handle the C++ grammar
appropriately. Fixes PR7794.
llvm-svn: 110445
2010-08-06 14:50:36 +00:00
Douglas Gregor
229c281d37
Remove some incorrect assertions when deduction template arguments in
...
a template-argument-list. When template template parameters are
involved, we won't already have checked the template-argument-list (it
may not be known yet!). Fixes PR7807.
llvm-svn: 110444
2010-08-06 14:15:26 +00:00
Douglas Gregor
7260905918
Make sure that we diagnose attribute((overloadable)) functions without
...
prototypes. Fixes PR7738.
llvm-svn: 110443
2010-08-06 13:50:58 +00:00
Douglas Gregor
7617cb8440
Define _INTEGRAL_MAX_BITS for the win32 and win64 targets, from Per Lindén!
...
llvm-svn: 110442
2010-08-06 12:37:52 +00:00
Abramo Bagnara
7c5dee4280
Template keyword should not be ignored building a QualifiedTemplateName.
...
llvm-svn: 110441
2010-08-06 12:11:11 +00:00
Douglas Gregor
d26129a98a
Fix the #include search path when reading from stdin, from Jon Simons!
...
Fixes PR4897.
llvm-svn: 110440
2010-08-06 12:06:13 +00:00
Douglas Gregor
2588691a69
Diagnose the use of "inline" on block-scope function declarations in
...
C++, from Andrea Nall!
llvm-svn: 110439
2010-08-06 11:44:10 +00:00
Douglas Gregor
59e8b3bd7b
Introduce implicit conversions between AltiVec vectors and GCC
...
vectors, from Anton Yartsev!
llvm-svn: 110437
2010-08-06 10:14:59 +00:00
Argyrios Kyrtzidis
249179cd73
Introduce a new token kind 'cxx_defaultarg_end' to mark the end of C++ default arguments that were part of
...
lexed method declarations.
This avoid interference with tokens coming after the point where the default arg tokens were 'injected', e.g. for
typedef struct Inst {
void m(int x=0);
} *InstPtr;
when parsing '0' the next token would be '*' and things would be messed up.
llvm-svn: 110436
2010-08-06 09:47:24 +00:00
Nick Lewycky
2667f1d409
Remove ElseScope which is also dead code now.
...
llvm-svn: 110433
2010-08-06 06:50:17 +00:00
Nick Lewycky
60ecc522e0
Remove the DeclaredInCondition bit now that it's no longer used.
...
llvm-svn: 110432
2010-08-06 05:43:55 +00:00
Zhongxing Xu
44207a9e9f
If all nodes are sunk, bail out early. This make the later check for checkersEvaluated really meaningful.
...
llvm-svn: 110430
2010-08-06 04:20:59 +00:00
Nate Begeman
ad5dd42817
vdup_lane was missing
...
<rdar://problem/8278732>
llvm-svn: 110420
2010-08-06 01:24:57 +00:00
Eli Friedman
e83d2b7649
Attempt to fix uninitialized value warning reported on cfe-commits.
...
llvm-svn: 110418
2010-08-06 01:17:25 +00:00
John McCall
dc9796e23a
Properly pop out of Objective-C method declarations when they are (ill-formedly)
...
found within contexts other than the translation unit.
llvm-svn: 110417
2010-08-06 00:46:05 +00:00
Sebastian Redl
e98428d7bd
Add an environment variable that makes libclang use chaining for PCH.
...
llvm-svn: 110414
2010-08-06 00:35:11 +00:00
Zhongxing Xu
cf61a0639d
Don't assert on a file stream if its state is not tracked. Fix pr7831.
...
llvm-svn: 110392
2010-08-05 23:24:13 +00:00
Jordy Rose
afdb053618
When checking if a buffer access is valid, first make sure the buffer has a valid Loc. Fixes PR7830.
...
llvm-svn: 110390
2010-08-05 23:11:30 +00:00
Bruno Cardoso Lopes
3d19889ca8
Fix AVX 256-bit intrinsics headers by using the right cast type while dealing with logical ops
...
llvm-svn: 110389
2010-08-05 23:04:58 +00:00
John McCall
491462425a
Don't crash when mangling empty anonymous unions. We never actually *need*
...
these, but it's convenient to mangle them when deferring them (in the 99.99%
case where it's not an anonymous union, of course).
llvm-svn: 110381
2010-08-05 22:02:13 +00:00
Sebastian Redl
f03cdc5d27
Collect namespaces that need updating in a PCH chain. WIP
...
llvm-svn: 110378
2010-08-05 21:22:19 +00:00
Fariborz Jahanian
903aba39ee
Add support for block imported struct variable layout info.
...
(objc gc and blocks in NeXt runtime).
llvm-svn: 110377
2010-08-05 21:00:25 +00:00
John McCall
5513fce96b
It turns out that linkers (at least, the Darwin linker) don't necessarily
...
do the right thing with mixed-visibility symbols, so disable the visibility
optimization where that's possible, i.e. with template classes (since it's
possible that an arbitrary template might be subject to an explicit
instantiation elsewhere). 447.dealII actually does this.
I've put the code under an option that's currently not hooked up to anything.
llvm-svn: 110374
2010-08-05 20:39:18 +00:00
Chris Lattner
dc7ee3cd6b
fix the va_list definition for vc++64, patch by Cameron Esfahani!
...
llvm-svn: 110370
2010-08-05 20:04:20 +00:00
Sebastian Redl
08aca90253
Write various C++-specific records to chained PCHs. Tests will come later.
...
llvm-svn: 110357
2010-08-05 18:21:25 +00:00
John McCall
95bde46bbb
Argument evaluation order is not guaranteed. Split these out to force an order.
...
llvm-svn: 110354
2010-08-05 18:11:10 +00:00
Tom Care
16ba7c652e
Fixed logic error in UnreachableCodeChecker's marking algorithm that would sometimes allow for multiple sequential statements to be flagged.
...
llvm-svn: 110353
2010-08-05 17:53:44 +00:00
John McCall
a9731a4179
Fix a major bug with -ftrapv and ++/--. Patch by David Keaton!
...
llvm-svn: 110347
2010-08-05 17:39:44 +00:00
John McCall
0f8ccc4938
Allow multiple __declspec attributes after a class-key.
...
Patch by Francois Pichet!
llvm-svn: 110344
2010-08-05 17:13:11 +00:00
Fariborz Jahanian
d652ac82b0
For now skip over aggregate non-byref block variables.
...
(objc gc specific).
llvm-svn: 110340
2010-08-05 16:13:18 +00:00
Fariborz Jahanian
89f3721dee
Trying to unbreak buildbot.
...
llvm-svn: 110339
2010-08-05 15:52:12 +00:00
Ted Kremenek
9c22219d9c
Revert r110317, and add a comment why the assertion is not an invariant.
...
llvm-svn: 110330
2010-08-05 15:03:30 +00:00
Eli Friedman
06dcfd94c8
Flip the switch to use OffsetOfExpr unconditionally; feel free to revert if
...
this breaks something.
I'll wait a few days before cleaning out UnaryOperator::OffsetOf.
llvm-svn: 110328
2010-08-05 10:15:45 +00:00
Eli Friedman
74ef7cf144
PR7769: Fix references to anonymous structs/unions in base classes in
...
offsetof expressions.
llvm-svn: 110327
2010-08-05 10:11:36 +00:00
Eli Friedman
d7c7232a1d
Add IRGen support for non-constant OffsetOfExpr.
...
llvm-svn: 110326
2010-08-05 09:58:49 +00:00
Argyrios Kyrtzidis
7f76d11dcc
Store the pending implicit instantiations in the PCH and perform them at the end of the translation unit that
...
included the PCH, as God intended.
llvm-svn: 110324
2010-08-05 09:48:16 +00:00