Ted Kremenek
65cdbf58a7
Diagnose use of wide string literal in 'asm' instead of crashing. Fixes <rdar://problem/10465079>.
...
llvm-svn: 145656
2011-12-02 00:35:46 +00:00
Richard Smith
d572f82e49
Fix wrong-code bug when a const automatic variable of struct type has both a
...
mutable member and a constant initializer. We'd previously promoted such
variables to global constants, resulting in nasal demons if the mutable member
was modified.
This is only a temporary fix. The subtle interplay between isConstantInitializer
and CGExprConstant is very bug-prone; there are some other issues in this area
which I will be addressing in subsequent, more major reworking of this code.
llvm-svn: 145654
2011-12-02 00:30:33 +00:00
Eli Friedman
bfd5addf4c
When we're passing a vector with an illegal type through memory on x86-64, use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors.
...
llvm-svn: 145652
2011-12-02 00:11:43 +00:00
Douglas Gregor
cf68c58afe
Implement name hiding for declarations deserialized from a non-visible
...
module. When that module becomes visible, so do those declarations.
llvm-svn: 145640
2011-12-01 22:20:10 +00:00
Anna Zaks
719051e1c6
[analyzer] Make KeychainAPI checker less aggressive. radar://10508828
...
We trigger an error if free is called after a possibly failed allocation. Do not trigger the error if we know that the buffer is not null.
llvm-svn: 145584
2011-12-01 16:41:58 +00:00
Douglas Gregor
11bb308457
When typo-correction an Objective-C superclass name, don't
...
typo-correct to ourselves.
llvm-svn: 145583
2011-12-01 15:37:53 +00:00
Michael J. Spencer
0567b8ec58
Add Microsoft mangling of constructors and destructors. Patch by Dmitry!
...
llvm-svn: 145581
2011-12-01 09:55:00 +00:00
Francois Pichet
d3b986df5d
Change the Microsoft __interface keyword to be an alias for struct (not class) since members are public by default.
...
llvm-svn: 145580
2011-12-01 08:30:47 +00:00
Ted Kremenek
dc6fb77d35
Fix typo.
...
llvm-svn: 145577
2011-12-01 07:39:23 +00:00
Ted Kremenek
24fc93a940
When analyzing a C++ method (without a specific caller), assume 'this' is non-null. Fixes <rdar://problem/10508787>.
...
llvm-svn: 145575
2011-12-01 05:29:42 +00:00
Eli Friedman
f37bd2f2f1
Don't use a varargs convention for calls unprototyped functions where one of the arguments is an AVX vector.
...
llvm-svn: 145574
2011-12-01 04:53:19 +00:00
Douglas Gregor
d8fb1e30eb
When sending a message to a receiver that has "unknown any" type,
...
force the unknown any type to "id" so that the message send can be
completed without requiring a case. Fixes <rdar://problem/10506646>.
llvm-svn: 145552
2011-12-01 01:37:36 +00:00
Argyrios Kyrtzidis
79d0428046
ParmVarDecls have no linkage. Previously we would report that parameters
...
in type signatures have external linkage.
Fixes rdar://10058317.
llvm-svn: 145551
2011-12-01 01:28:21 +00:00
Ted Kremenek
764d63ad94
Specially whitelist the selector 'addOperationWithBlock:' for the retain-cycle checking in -Warc-retain-cycles. This commonly
...
is hit by users using NSOperationQueue. Fixes <rdar://problem/10465721>.
llvm-svn: 145548
2011-12-01 00:59:21 +00:00
Ted Kremenek
85825aebc9
Further tweak -Wurneachable-code and templates by allowing the warning to run on
...
explicit template specializations (which represent actual functions somebody wrote).
Along the way, refactor some other code which similarly cares about whether or
not they are looking at a template instantiation.
llvm-svn: 145547
2011-12-01 00:59:17 +00:00
Eli Friedman
83a1258342
Fix MSVC class layout for empty classes. Patch by Dmitry Sokolov.
...
llvm-svn: 145544
2011-12-01 00:37:01 +00:00
Richard Smith
b3041feaf7
Revert most of r145372 for now. Lookahead beyond the ';' in a function
...
declaration tickles a bug in the way we handle visibility pragmas.
The improvement to error recovery for template function definitions declared
with the 'typedef' specifier in r145372 is unrelated and not reverted here.
llvm-svn: 145541
2011-11-30 23:45:35 +00:00
Argyrios Kyrtzidis
b9e53ed4e2
[PCH] In ASTReader::FinishedDeserializing, after we do PassInterestingDeclsToConsumer
...
we may end up having added more pending stuff to do, so go in a loop until everything
is cleared out.
This fixes the error in rdar://10278815 which has a certain David Lynch-esque quality..
error: unknown type name 'BOOL'; did you mean 'BOOL'?
llvm-svn: 145536
2011-11-30 23:18:26 +00:00
Lang Hames
d8bcb2b808
Test case for fix committed in r145441.
...
llvm-svn: 145534
2011-11-30 23:03:25 +00:00
Ted Kremenek
f551f326fc
Per an offline conversation with John McCall, have StmtPrinter actually print out the source expression for OpaqueValueExpr.
...
llvm-svn: 145524
2011-11-30 22:08:08 +00:00
Ted Kremenek
7f770032c7
Don't run -Wunreachable-code on template instantiations. Different instantiations may produce different unreachable code results, and it is very difficult for us to prove that ALL instantiations of a template have specific unreachable code. If we come up with a better solution, then we can revisit this, but this approach will at least greatly reduce the noise of this warning for code that makes use of templates.
...
llvm-svn: 145520
2011-11-30 21:22:09 +00:00
Douglas Gregor
41e115a81a
Introduce an opt-in warning indicating when the compiler is treating
...
an #include/#import as a module import.
llvm-svn: 145500
2011-11-30 18:02:36 +00:00
Douglas Gregor
36b7f115e4
Add preprocessor-only test for submodule imports
...
llvm-svn: 145490
2011-11-30 14:57:39 +00:00
John McCall
e929082806
Fix the instantiation of pseudo-object expressions. This is a
...
really bad way to go about this, but I'm not sure there's a better
choice without substantial changes to TreeTransform --- most
notably, preserving implicit semantic nodes instead of discarding
and rebuilding them.
llvm-svn: 145480
2011-11-30 04:42:31 +00:00
Douglas Gregor
5196bc6b39
When loading a module that involves submodules (e.g., std.vector),
...
check whether the named submodules themselves are actually
valid, and drill down to the named submodule (although we don't do
anything with it yet). Perform typo correction on the submodule names
when possible.
llvm-svn: 145477
2011-11-30 04:03:44 +00:00
Eric Christopher
607fb70750
Make sure that forward declarations are marked as such in the debug info
...
for the structure type.
rdar://10499337
llvm-svn: 145461
2011-11-29 23:57:40 +00:00
Richard Smith
507840dbff
Revert r145244. It causes us to create broken ASTs with missing type information
...
for some cast expressions.
Original commit message:
Removed useless ImplicitCast nodes in explicit cstyle and static casts
llvm-svn: 145447
2011-11-29 22:48:16 +00:00
Matt Beaumont-Gay
c93b489138
Suppress -Warray-bounds for classes (not just structs) where the last field is
...
a 1-length character array.
llvm-svn: 145445
2011-11-29 22:43:53 +00:00
Douglas Gregor
70db54f18d
Eliminate the -emit-module option, which emitted a module by parsing a
...
source file (e.g., a header). Immediately steal this useful option
name for building modules from a module map file.
llvm-svn: 145444
2011-11-29 22:42:06 +00:00
Ted Kremenek
cfe4ff9725
Relax RegionStore to allow loads from CodeTextRegions. Apparently you can actually write code that does this. This seems worthy of a checker, but the StoreManager should handle the memory abstraction without crashing. Fixes PR 11450.
...
llvm-svn: 145424
2011-11-29 19:39:29 +00:00
Matt Beaumont-Gay
b2339826e6
Merge branch 'yo-dawg-i-herd-u-like-arrays'
...
llvm-svn: 145421
2011-11-29 19:27:11 +00:00
Ted Kremenek
7623347f83
Place "use @dynamic or provide a method implementation" warnings under a -W flag.
...
llvm-svn: 145418
2011-11-29 19:18:47 +00:00
Douglas Gregor
514b636ada
Teach the module import mechanism how to rebuild modules expressed via
...
module map, rather than assuming that there is an umbrella
header. This allows us to automatically build umbrella-less modules.
llvm-svn: 145415
2011-11-29 19:06:37 +00:00
Richard Smith
53711607a0
Add fix-it to remove 'typedef' from function template definitions. Such a token
...
was probably meant to be 'typename', which we will have already suggested if it
is appropriate.
llvm-svn: 145395
2011-11-29 09:09:06 +00:00
Argyrios Kyrtzidis
c36d6a1696
[libclang] Make the test portable.
...
llvm-svn: 145377
2011-11-29 05:48:01 +00:00
Richard Smith
675ea99a2a
PR10101: Recover better from a common copy-paste error: if a function
...
declaration at namespace scope is followed by a semicolon and an open-brace
(or in C++, a 'try', ':' or '='), then the error is probably a function
definition with a spurious ';', rather than a mysterious '{'.
llvm-svn: 145372
2011-11-29 05:27:40 +00:00
Argyrios Kyrtzidis
1ddb97ec86
[libclang] Make clang_findReferencesInFile also work on macros (find all expansions/definition
...
of a macro in a file).
As a bonus, also make searching for declarations more efficient by ignoring
preprocessing entities when we know that we are looking for a declaration.
Fixes rdar://10427411.
llvm-svn: 145369
2011-11-29 03:14:11 +00:00
Fariborz Jahanian
a45495a9f2
objc: warn if NSObject attribute appears other than in a typedef.
...
// rdar://10453342
llvm-svn: 145358
2011-11-29 01:48:40 +00:00
Ted Kremenek
6cdff0a82b
Fix serialized diagnostics to handle FixIts that only remove text. Fixes <rdar://problem/10473903>.
...
llvm-svn: 145339
2011-11-29 00:30:52 +00:00
Tanya Lattner
71f1b2dcd4
Correct the code generation for function arguments of vec3 types on x86_64 when they are greater than 128 bits. This was incorrectly coercing things like long3 into a double2.
...
Add test case.
llvm-svn: 145312
2011-11-28 23:18:11 +00:00
Anna Zaks
ff029b6953
[analyzer] Add more simple taint tests.
...
llvm-svn: 145275
2011-11-28 20:43:40 +00:00
Douglas Gregor
7db3e95b0d
When synthesizing an implicitly-defined copy or move constructor, or
...
when computing the exception specification of a copy or move constructor,
ignore non-static data member initializers. Fixes PR11418 /
<rdar://problem/10478642>.
llvm-svn: 145269
2011-11-28 20:03:15 +00:00
Fariborz Jahanian
25d09c2209
pinpoint name/location of deprecated/unavailable enumerator
...
whose enum has been made deprecated/unavailable in the warning.
// rdar://10201690
llvm-svn: 145264
2011-11-28 19:45:58 +00:00
Fariborz Jahanian
22b405c7aa
objc: turn warning for property type mismatch in
...
primary and its continuation class into error.
// rdar://10142679
llvm-svn: 145255
2011-11-28 18:38:27 +00:00
Douglas Gregor
7372248a98
When checking a call to a builtin atomic operation, be sure to
...
consider the _<width> variants as well, which we'll see if we're
performing the type checking in a template instantiation where the
call expression itself was originally not type-dependent. Fixes
PR11411.
llvm-svn: 145248
2011-11-28 16:30:08 +00:00
Nicola Gigante
13b6a2ae04
Removed useless ImplicitCast nodes in explicit cstyle and static casts
...
llvm-svn: 145244
2011-11-28 12:21:57 +00:00
NAKAMURA Takumi
cd9c3d6647
test/lit.cfg: Enhance getRegisteredTargets() to retrieve +Asserts.
...
- s/getRegisteredTargets/get_llc_props/g
- get_llc_props() returns dict {"set_of_targets", "enable_assertions"}
- Enable the feature "asserts".
test/Driver/darwin-verify-debug.c had expected it.
llvm-svn: 145231
2011-11-28 05:09:42 +00:00
Argyrios Kyrtzidis
eca1f36a54
[arcmt] Integrate GC __weak into property attributes even when we don't have
...
the implementation.
llvm-svn: 145224
2011-11-28 02:04:36 +00:00
Argyrios Kyrtzidis
3fc3dcd80f
[arcmt] Don't add __weak if there is already a GC __weak and make sure to clear
...
__weak from a readonly property.
llvm-svn: 145210
2011-11-28 00:23:12 +00:00
Peter Collingbourne
fbef4c8657
In Sema::MaybeBindToTemporary, create a CXXBindTemporaryExpr for an
...
array of objects with non-trivial destructors. PR11365.
llvm-svn: 145203
2011-11-27 22:09:28 +00:00