Ted Kremenek
9f6341d22e
Tweak ARC diagnostic categories and rename 'Automatic Reference Counting Issue' to 'ARC Parse Issue' and 'ARC Issue' to 'ARC Semantic Issue'. Patch by Jean-Daniel Dupas.
...
llvm-svn: 146483
2011-12-13 14:50:33 +00:00
Abramo Bagnara
d541a4c70d
Added an assertion about overflow in sizeof evaluation. This does not solve the underlying structural issue that is waiting for a proper solution.
...
llvm-svn: 146482
2011-12-13 11:23:52 +00:00
David Blaikie
42b99e08e6
Disallow decltype in qualified declarator-ids.
...
llvm-svn: 146480
2011-12-13 08:03:36 +00:00
Richard Smith
357362d00b
Add checks and diagnostics for many of the cases which C++11 considers to not
...
be constant expressions.
llvm-svn: 146479
2011-12-13 06:39:58 +00:00
Nick Lewycky
f43e681ed7
Testcase for LLVM commit r146475.
...
llvm-svn: 146476
2011-12-13 05:09:22 +00:00
Nick Lewycky
304584f5a5
s/%clang-cc1/%clang_cc1/ for conformity.
...
llvm-svn: 146454
2011-12-13 00:32:15 +00:00
Douglas Gregor
4dc71835f5
Set umbrella directory correctly when we infer a framework module
...
llvm-svn: 146451
2011-12-12 23:55:05 +00:00
Nick Lewycky
12eae8085c
Fix "control may reach end of non-void function" warning.
...
llvm-svn: 146448
2011-12-12 23:36:07 +00:00
Francois Pichet
025131601d
Implement the Microsoft __if_exists/if_not_exists extension in initializer-list.
...
Necessary to parse Microsoft ATL code.
Example:
int array[] = {
0,
__if_exists(CLASS::Type) {2, }
3
};
will declare an array of 2 or 3 elements depending on if CLASS::Type exists or not.
llvm-svn: 146447
2011-12-12 23:24:39 +00:00
Kostya Serebryany
7c5c789e38
[asan] update asan docs
...
llvm-svn: 146446
2011-12-12 23:22:31 +00:00
Douglas Gregor
18b5864b83
Tweak submodule ID handling in the AST writer
...
llvm-svn: 146445
2011-12-12 23:17:57 +00:00
Fariborz Jahanian
b989e6e50a
objc-arc: better diagnostic when block is declared
...
inside a struct/union.
llvm-svn: 146444
2011-12-12 23:17:04 +00:00
Eli Friedman
3c840aad54
Make CGRecordLayoutBuilder correctly switch over to a packed class when a class has a base whose alignment will break the class layout. <rdar://problem/10551376>.
...
llvm-svn: 146443
2011-12-12 23:13:20 +00:00
Chad Rosier
c4399f779b
Add frontend flags to enable bitcode verifier pass.
...
llvm-svn: 146441
2011-12-12 23:05:47 +00:00
Matt Beaumont-Gay
9d570c438c
Suppress -Warray-bounds in certain cases involving macros from system headers.
...
The motivation here is a "clever" implementation of strncmp(), which peels the first few comparisons via chained conditional expressions which ensure that the input arrays are known at compile time to be sufficiently large.
llvm-svn: 146430
2011-12-12 22:35:02 +00:00
Fariborz Jahanian
0586df4a00
Fixes a bug in calculation of field offsets of ms_struct
...
fields by just following what comment says.
// rdar://10513599
llvm-svn: 146414
2011-12-12 21:16:36 +00:00
Tony Linthicum
76329bf83f
Hexagon backend support
...
llvm-svn: 146413
2011-12-12 21:14:55 +00:00
Richard Smith
dcf1b2cc29
Further tweaking of diagnostic text for casts performing reinterpret_cast
...
conversions in constant expressions.
llvm-svn: 146406
2011-12-12 19:33:27 +00:00
Douglas Gregor
c1aaf8cacb
When we have an umbrella directory in a module map, recursively walk
...
the subdirectories to find headers in submodules.
llvm-svn: 146398
2011-12-12 19:13:53 +00:00
Richard Smith
ff07af12df
Clean up diagnostic wording for disallowed casts in C++11 constant expressions.
...
llvm-svn: 146395
2011-12-12 19:10:03 +00:00
Douglas Gregor
a95387786d
Don't mark include guard macros as implicitly private. This isn't
...
actually a terribly good heuristic, and the world is too horrible for
it to work.
llvm-svn: 146393
2011-12-12 18:47:39 +00:00
Hans Wennborg
4951c67875
Fix signature of vsscanf in Builtins.def
...
llvm-svn: 146392
2011-12-12 18:46:05 +00:00
Hans Wennborg
8d5a4093f5
Fix signature of sscanf in Builtins.def
...
llvm-svn: 146390
2011-12-12 18:33:02 +00:00
Richard Smith
6d6ecc34f8
Implement C++11 constant expression cast restrictions.
...
llvm-svn: 146371
2011-12-12 12:46:16 +00:00
Hans Wennborg
bb4189db23
Make fscanf, vscanf, etc. be recognized as scanf-like functions.
...
llvm-svn: 146367
2011-12-12 10:34:18 +00:00
Richard Smith
187ef01404
Fix some not-yet-used diagnostic code in a template, which gcc spotted and clang
...
did not!
llvm-svn: 146366
2011-12-12 09:41:58 +00:00
Richard Smith
92b1ce0a80
Prepare constant expression infrastructure for the generation of richer
...
diagnostics. No functionality change.
llvm-svn: 146365
2011-12-12 09:28:41 +00:00
Chandler Carruth
a31b95cacf
Update Clang to emit the new form of llvm.cttz and llvm.ctlz intrinsics,
...
setting the is_zero_undef flag appropriately to true as that matches the
semantics of these GCC builtins.
This is the Clang side of r146357 in LLVM.
llvm-svn: 146358
2011-12-12 04:28:35 +00:00
David Blaikie
08608f6744
Fix/test decltype dtor calls with invalid base expression.
...
llvm-svn: 146354
2011-12-12 04:13:55 +00:00
Anna Zaks
7c96b7db96
[analyzer] CStringChecker should not rely on the analyzer generating UndefOrUnknown value when it cannot reason about the expression.
...
We are now often generating expressions even if the solver is not known to be able to simplify it. This is another cleanup of the existing code, where the rest of the analyzer and checkers should not base their logic on knowing ahead of the time what the solver can reason about.
In this case, CStringChecker is performing a check for overflow of 'left+right' operation. The overflow can be checked with either 'maxVal-left' or 'maxVal-right'. Previously, the decision was based on whether the expresion evaluated to undef or not. With this patch, we check if one of the arguments is a constant, in which case we know that 'maxVal-const' is easily simplified. (Another option is to use canReasonAbout() method of the solver here, however, it's currently is protected.)
This patch also contains 2 small bug fixes:
- swap the order of operators inside SValBuilder::makeGenericVal.
- handle a case when AddeVal is unknown in GenericTaintChecker::getPointedToSymbol.
llvm-svn: 146343
2011-12-11 18:43:40 +00:00
Benjamin Kramer
4257ab3ff0
Reuse forAddr to create ignored AggValueSlots.
...
Silences valgrind warnings about uninitalized alignment values.
llvm-svn: 146342
2011-12-11 16:34:24 +00:00
Anna Zaks
170fdf1b5a
[analyzer]Fixup r146336.
...
Forgot to commit the Header files.
Rename generateUnknownVal -> makeGenericVal.
llvm-svn: 146337
2011-12-10 23:42:38 +00:00
Anna Zaks
ecd730085d
[analyzer] Introduce IntSymExpr, where the integer is on the lhs.
...
Fix a bug in SimpleSValBuilder, where we should swap lhs and rhs when calling generateUnknownVal(), - the function which creates symbolic expressions when data is tainted. The issue is not visible when we only create the expressions for taint since all expressions are commutative from taint perspective.
Refactor SymExpr::symbol_iterator::expand() to use a switch instead of a chain of ifs.
llvm-svn: 146336
2011-12-10 23:36:51 +00:00
Hans Wennborg
b1a5e09f6f
Check that arguments to a scanf call match the format specifier,
...
and offer fixits when there is a mismatch.
llvm-svn: 146326
2011-12-10 13:20:11 +00:00
NAKAMURA Takumi
79451e68b2
test/Sema/attr-availability.c: Add explicit -triple x86_64-apple-darwin9, for now.
...
llvm-svn: 146321
2011-12-10 07:50:30 +00:00
Argyrios Kyrtzidis
173e911394
[libclang] Add defensive checks to make sure we don't try to dereference
...
a null pointer after getCursorDecl() is called. rdar://10298421.
llvm-svn: 146312
2011-12-10 02:36:25 +00:00
Argyrios Kyrtzidis
cc6107df08
In ContentCache::replaceBuffer, add sanity check to make sure that we do not free a buffer
...
and then continue using it. rdar://10359140.
llvm-svn: 146308
2011-12-10 01:38:26 +00:00
Douglas Gregor
8ca0c6408e
Make sure that we infer __strong, etc. when we instantiate variables
...
under ARC. Fixes <rdar://problem/10530209>.
llvm-svn: 146307
2011-12-10 01:22:52 +00:00
Richard Smith
036e2bd07a
Add a fast path to the constant evaluator for integer literals. This speeds up
...
compilation of some translation units of SPEC's 445.gobmk by ~4%, and does not
seem to cause a measurable slowdown in other cases.
llvm-svn: 146306
2011-12-10 01:10:13 +00:00
Argyrios Kyrtzidis
6c8d29f7d1
Add a sanity check in SourceManager::getColumnNumber, make sure
...
we don't try to access beyond the buffer.
llvm-svn: 146305
2011-12-10 00:30:38 +00:00
Fariborz Jahanian
88d510da9d
Add ability to supply additional message to availability macros,
...
// rdar://10095131
llvm-svn: 146304
2011-12-10 00:28:41 +00:00
Douglas Gregor
ddaae8e4e5
Use the right CHECK prefix so that we actually do this checking. Miraculously, this hasn't broken
...
llvm-svn: 146303
2011-12-10 00:28:18 +00:00
Douglas Gregor
c7f46f20d1
When we manage to re-use an expression during tree transformation (=
...
template instantiation), and that expression might produce a
temporary, invoke MaybeBindToTemporary. Otherwise, we forget to
destroy objects, release objects, etc. Fixes <rdar://problem/10531073>.
llvm-svn: 146301
2011-12-10 00:23:21 +00:00
Daniel Dunbar
19939cc380
Driver: Handle -f{no-}honor-infinities, -f{no-}honor-nans, and
...
-ffinite-math-only.
- No test case yet, I don't know how to construct a situation where this
matters.
llvm-svn: 146297
2011-12-09 23:41:18 +00:00
Matt Beaumont-Gay
e17b7413e1
Fix up doxyments (\arg vs \p).
...
llvm-svn: 146292
2011-12-09 23:16:01 +00:00
Eli Friedman
de6a86b4f6
Make array new on a pointer to data member type work correctly. PR11523.
...
llvm-svn: 146291
2011-12-09 23:05:37 +00:00
Richard Smith
0765bec2ad
Mechanically convert static_assert_fold to static_assert, now we implement the
...
C++11 ICE rules.
llvm-svn: 146290
2011-12-09 23:00:37 +00:00
Richard Smith
f57d8cb131
C++11 constant expressions: Don't use CheckICE in C++11; instead, determine
...
whether an expression is a (core) constant expression as a side-effect of
evaluation. This takes us from accepting far too few expressions as ICEs to
accepting slightly too many -- fixes for the remaining cases are coming next.
The diagnostics produced when an expression is found to be non-constant are
currently quite poor (with generic wording but reasonable source locations),
and will be improved in subsequent commits.
llvm-svn: 146289
2011-12-09 22:58:01 +00:00
Ted Kremenek
b4a8b056f8
Add clang_getDiagnosticSetFromTU() to libclang. Fixes <rdar://problem/10553081>.
...
llvm-svn: 146287
2011-12-09 22:28:32 +00:00
Ted Kremenek
2d6d886d73
Sort exports list.
...
llvm-svn: 146286
2011-12-09 22:28:29 +00:00