Douglas Gregor
0b144e160a
Replace all comparisons between ObjCInterfaceDecl pointers with calls
...
to declaresSameEntity(), as a baby step toward tracking forward
declarations of Objective-C classes precisely. Part of
<rdar://problem/10583531>.
llvm-svn: 146618
2011-12-15 00:29:59 +00:00
Richard Smith
902ca2138f
Produce more detailed diagnostics when static_assert condition is not an ICE.
...
llvm-svn: 146607
2011-12-14 23:32:26 +00:00
Rafael Espindola
00b29189b7
Fix typos.
...
llvm-svn: 146595
2011-12-14 21:50:24 +00:00
Douglas Gregor
7234103225
Don't consider an overloaded operator& when the expression is actually
...
going to be a pointer-to-member constant. Fixes <rdar://problem/10544564>.
llvm-svn: 146587
2011-12-14 21:23:13 +00:00
Rafael Espindola
224dd63fff
Don't use the frame pointer on linux x86 and x86_64 if optimizing. This
...
matches gcc's behavior.
Fixes PR8186.
llvm-svn: 146586
2011-12-14 21:02:23 +00:00
DeLesley Hutchins
36f5d8518b
Allow empty argument lists in thread safety attributes
...
llvm-svn: 146580
2011-12-14 19:36:06 +00:00
David Blaikie
96b4874b50
Move & comment the 'decltype in declarator-id' as suggested by Doug Gregor.
...
llvm-svn: 146576
2011-12-14 18:59:02 +00:00
Bob Wilson
16c4195548
Fix obvious error in _mm_test_all_zeros. PR11565.
...
Patch by Mathias Gaunard!
llvm-svn: 146565
2011-12-14 17:17:16 +00:00
Douglas Gregor
40d009ff0c
Eliminate the vistigial ObjCClassDecl::ObjCClassRef, and inline its
...
members into ObjCClassDecl, saving ourselves one pointer per forward
declaration.
llvm-svn: 146564
2011-12-14 17:12:03 +00:00
Douglas Gregor
4a814568b2
When name lookup comes across a declaration that is in a module that
...
is not visible, look for any previous declarations of that entity that
might be visible.
llvm-svn: 146563
2011-12-14 16:03:29 +00:00
Matt Beaumont-Gay
5533a55172
r146430 lost some compile-time performance on MultiSource/Benchmarks/MiBench/security-rijndael; this gets most of it back.
...
llvm-svn: 146562
2011-12-14 16:02:15 +00:00
Bob Wilson
721d4b858d
Enable stack protectors by default for iOS. <rdar://problem/8836680>
...
llvm-svn: 146552
2011-12-14 06:08:25 +00:00
Anna Zaks
099fe3fb28
[analyzer] Treat stdin as a source of taint.
...
Some of the test cases do not currently work because the analyzer core
does not seem to call checkers for pre/post DeclRefExpr visits.
(Opened radar://10573500. To be fixed later on.)
llvm-svn: 146536
2011-12-14 00:56:18 +00:00
Anna Zaks
04b57c25bc
[analyzer] Minor refactor to addTaint.
...
llvm-svn: 146535
2011-12-14 00:56:15 +00:00
Anna Zaks
eefc0e9342
[analyzer] Mark output of fscanf and fopen as tainted.
...
llvm-svn: 146533
2011-12-14 00:56:02 +00:00
Anna Zaks
d6bb3227de
[analyzer] Mark getenv output as tainted.
...
Also, allow adding taint to a region (not only a symbolic value).
llvm-svn: 146532
2011-12-14 00:55:58 +00:00
Chad Rosier
1332d9b26a
Per discussion on the list, remove BitcodeVerify pass to reimplement as a free function.
...
llvm-svn: 146530
2011-12-14 00:29:23 +00:00
Richard Trieu
96ed5b6b47
Make the diagnostic message more consistant. Update the type comparison to
...
handle non-pointer types. This is for the extra info printed when function
types are compared.
llvm-svn: 146525
2011-12-13 23:19:45 +00:00
Fariborz Jahanian
c17c86b56c
objc: diagnose duplicate declaration of methods
...
in classes. // rdar://10535349
llvm-svn: 146504
2011-12-13 19:40:34 +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
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
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
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
Richard Smith
6d6ecc34f8
Implement C++11 constant expression cast restrictions.
...
llvm-svn: 146371
2011-12-12 12:46:16 +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
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