Fariborz Jahanian
04477f3de9
Merge block/function pointer types with objc's __weak
...
attribute properly and avoid bogus warning. This is
an objective-c fix only. objective-c++ follows different code
pass and requires separate fix (which will come at a later time).
Fixes radar 7214820.
llvm-svn: 95571
2010-02-08 21:09:39 +00:00
Douglas Gregor
3aed6cdd5e
Implement basic importing and merging of variable declarations within
...
the AST importer. This doesn't actually do anything (yet), because we
don't have driver logic for merging ASTs.
llvm-svn: 95570
2010-02-08 21:09:39 +00:00
Ted Kremenek
94c5349ef2
Add a Python script to change what version of Clang is used by Xcode for static analysis (and ONLY static analysis).
...
llvm-svn: 95569
2010-02-08 20:54:01 +00:00
Daniel Dunbar
ddf1445134
Fix -Asserts warning.
...
llvm-svn: 95563
2010-02-08 20:24:21 +00:00
Sebastian Redl
c1b139dba0
Add a test case for r95555.
...
llvm-svn: 95562
2010-02-08 19:58:40 +00:00
Benjamin Kramer
16fe0bcb26
Simplify another switch/strcmp construct. No functionality/performance change.
...
llvm-svn: 95561
2010-02-08 19:51:59 +00:00
Sebastian Redl
b0e3e1bf67
When placing an annotation token over an existing annotation token, make sure that the new token's range extends to the end of the old token. Assert that in AnnotateCachedTokens. Fixes PR6248.
...
llvm-svn: 95555
2010-02-08 19:35:18 +00:00
John McCall
69f9dbc3e4
Fix the crash-on-invalid from PR6259.
...
llvm-svn: 95554
2010-02-08 19:26:07 +00:00
Chandler Carruth
75cc359fdc
Ensure that a operator delete overload is rocognized regardless of cv-quals.
...
llvm-svn: 95553
2010-02-08 18:54:05 +00:00
Benjamin Kramer
eaabbd8b46
Reapply r95546, no intended change in performance or functionality.
...
llvm-svn: 95552
2010-02-08 18:38:55 +00:00
Ted Kremenek
ac5ab79555
Revert 95546 since it changed the algorithmic characteristics of the convention lookup.
...
llvm-svn: 95547
2010-02-08 16:45:01 +00:00
Benjamin Kramer
30949dd9f9
Simplify code with StringRef.
...
3 files changed, 76 insertions(+), 153 deletions(-)
llvm-svn: 95546
2010-02-08 16:39:00 +00:00
Ted Kremenek
57f0989c16
Revert 95541.
...
llvm-svn: 95545
2010-02-08 16:18:51 +00:00
Douglas Gregor
f65bbb31e8
Cache imported types
...
llvm-svn: 95543
2010-02-08 15:18:58 +00:00
Zhongxing Xu
500f49fe25
Rename: GRState::getSVal(Stmt*) => getExprVal(),
...
GRState::getSVal(MemRegion*) => Load().
llvm-svn: 95541
2010-02-08 09:30:02 +00:00
Zhongxing Xu
c5f825eacd
BindInternal is redundant. Remove it.
...
llvm-svn: 95540
2010-02-08 08:48:05 +00:00
Zhongxing Xu
8ca2dc05a3
Like for symbolic region, automatically create a element zero region for
...
alloca region.
llvm-svn: 95539
2010-02-08 08:43:02 +00:00
Zhongxing Xu
b02d4a0d11
Unify the implementation of getLValueElement of store managers.
...
It's more sophisticated than the original one of BasicStore. But it does
matter.
llvm-svn: 95536
2010-02-08 08:17:02 +00:00
Zhongxing Xu
f7f0cdc517
Unify the implementation of getLValueIvar and getLValueField of store managers.
...
llvm-svn: 95535
2010-02-08 07:58:06 +00:00
Zhongxing Xu
08515a5242
Move common methods to the base StoreManager class.
...
llvm-svn: 95534
2010-02-08 07:10:35 +00:00
Chandler Carruth
794da4c236
This doesn't seem to be used code as it didn't break any tests, but fix the
...
glaring logic bug anyways. =D
llvm-svn: 95533
2010-02-08 06:42:49 +00:00
Zhongxing Xu
8ffee4d5f8
ASTContext is now a reference member of StoreManager.
...
llvm-svn: 95531
2010-02-08 06:00:22 +00:00
Zhongxing Xu
000a859f05
Add support for binding and retrieving VarRegions in flat store.
...
llvm-svn: 95529
2010-02-08 05:40:07 +00:00
Chandler Carruth
c126311d3e
Require a complete type before examining base classes during template argument
...
deduction. This requires refactoring the deduction to have access to the Sema
object instead of merely the ASTContext. Still leaves something to be desired
due to poor source location.
Fixes PR6257 and half of PR6259.
llvm-svn: 95528
2010-02-07 21:33:28 +00:00
Anders Carlsson
ff8cce4395
Make sure to set vtable pointers in the destructors as well.
...
llvm-svn: 95525
2010-02-07 19:45:40 +00:00
Anders Carlsson
6d0e5bd8f3
Use the right type when taking the address of a non-virtual member function pointer. Fixes PR6258.
...
llvm-svn: 95524
2010-02-07 17:37:13 +00:00
Douglas Gregor
0e027fb32b
Workaround for friend template instantiation crash in PR5848, from Keir Mierle!
...
llvm-svn: 95517
2010-02-07 10:31:35 +00:00
Douglas Gregor
b65a913c35
Fix assertion failure when parsing linkage specifications (PR5921),
...
from Keir Mierle!
llvm-svn: 95516
2010-02-07 08:38:28 +00:00
Sam Weinig
e83b3aca0b
Roll r95513 back in.
...
llvm-svn: 95515
2010-02-07 06:32:43 +00:00
Sam Weinig
e911058bb5
Roll out r95513, it seems to have broken self hosting.
...
llvm-svn: 95514
2010-02-07 05:26:25 +00:00
Sam Weinig
db3758c40d
Add PCH support for CXXBoolLiteralExpr and CXXNullPtrLiteralExpr.
...
llvm-svn: 95513
2010-02-07 04:44:10 +00:00
Anders Carlsson
cee2d2f016
Use the right linkage for static variables inside C++ inline functions.
...
llvm-svn: 95512
2010-02-07 02:03:08 +00:00
Anders Carlsson
10d369d1a2
Improved handling of the visibility attribute. Declarations now inherit their parent's visibility.
...
(This is kind of a risky change, but I did a self-host build and everything appears to work fine!)
llvm-svn: 95511
2010-02-07 01:44:36 +00:00
Anders Carlsson
a7bcade229
Add attributes to namespace decls.
...
llvm-svn: 95510
2010-02-07 01:09:23 +00:00
Anders Carlsson
9878f9f73b
Make EmitStartEHSpec and EmitEndEHSpec return early when exceptions are disabled.
...
llvm-svn: 95509
2010-02-06 23:59:05 +00:00
Anders Carlsson
fcd764a168
Add support for threadsafe statics, and make them the default (matching gcc).
...
Daniel, I'd appreciate a review of the driver/cc1 parts.
llvm-svn: 95508
2010-02-06 23:23:06 +00:00
Anders Carlsson
5ade5d39b4
Call destructors for constructed bases as well.
...
llvm-svn: 95502
2010-02-06 20:00:21 +00:00
Anders Carlsson
ba63167b64
If a constructor throws an exception we need to execute the destructors for all fully constructed members. Fixes ctor_dtor_count.cpp in the test suite.
...
llvm-svn: 95501
2010-02-06 19:50:17 +00:00
John McCall
15dda3701a
Use a substituted type when determining how to substitute in non-type template
...
params. Don't insert addrof operations when matching against a pointer;
array/function conversions should take care of this for us, assuming the
argument type-checked in the first place. Add a fixme where we seem to be
using a less-restrictive reference type than we should.
Fixes PR 6249.
llvm-svn: 95495
2010-02-06 10:23:53 +00:00
Benjamin Kramer
4692faa7a4
Silence GCC warning and stay in 80 cols.
...
llvm-svn: 95494
2010-02-06 09:59:24 +00:00
John McCall
13481c56c3
Extract a function to instantiate references to value template parameters.
...
llvm-svn: 95491
2010-02-06 08:42:39 +00:00
Ted Kremenek
83fdeb5855
Update checker build.
...
llvm-svn: 95490
2010-02-06 06:08:09 +00:00
Anders Carlsson
96c15b1816
Don't diagnose missing noreturns for uninstantiated templates. Fixes PR6247.
...
llvm-svn: 95487
2010-02-06 05:31:15 +00:00
Douglas Gregor
61f6db54e1
Switch CodeGen's "is this variable declaration a definition?" logic
...
over to VarDecl::isThisDeclarationADefinition(), which handles
variables declared with linkage specifications better (among other
things). CMake 2.9 (from CVS) now builds with clang++ and is somewhat
functional.
llvm-svn: 95486
2010-02-06 05:15:45 +00:00
Anders Carlsson
2c4de4c31e
Only append 'L' for internal variable declarations, not all declarations. (Found by the mangle checker, yay)
...
llvm-svn: 95485
2010-02-06 04:52:27 +00:00
Ted Kremenek
bdfcacbe8f
Also teach RegionStore::RetrieveVar() to handle 'static' pointers that are implicitly initialized to NULL.
...
llvm-svn: 95479
2010-02-06 04:04:46 +00:00
Ted Kremenek
30fe9ecac2
Fix regression in RegionStore (from BasicStore) where static variables were not treated as being implicitly initialized to 0 (and instead were getting symbolicated).
...
llvm-svn: 95478
2010-02-06 03:57:59 +00:00
Ted Kremenek
9c193965ba
Remove unused variable.
...
llvm-svn: 95476
2010-02-06 03:29:18 +00:00
Anders Carlsson
6710c5351e
Use the correct function info for constructors when applying function attributes. Fixes PR6245.
...
llvm-svn: 95474
2010-02-06 02:44:09 +00:00
Anders Carlsson
0da714a3e2
Implement a warning diagnostic for weak vtables. Fixes PR6116.
...
llvm-svn: 95472
2010-02-06 02:27:10 +00:00
John McCall
ce410662ce
Teach Sema how to instantiate a local function declaration properly. Fixes
...
PR 5517.
llvm-svn: 95470
2010-02-06 01:50:47 +00:00
Douglas Gregor
cae03b1e6d
Assert when we try to mangle a dependent template name, rather than
...
crashing unceremoniously.
llvm-svn: 95464
2010-02-06 01:09:36 +00:00
John McCall
52cc0897f3
Per discussion, remove the explicit restriction on static const data members with
...
out-of-line initializers as integer constant expressions. Fixes PR6206.
llvm-svn: 95463
2010-02-06 01:07:37 +00:00
Ted Kremenek
5abd69d946
Teach RegionStore::InvalidateRegions() to also invalidate static variables referenced by blocks.
...
llvm-svn: 95459
2010-02-06 00:30:00 +00:00
John McCall
ca972cd1f1
Rearrange some checks to avoid call to isCopyConstructor() and clarify path
...
taken for non-trivial constructors.
llvm-svn: 95457
2010-02-06 00:25:16 +00:00
Douglas Gregor
bb26a92239
Update Clang C++ status, with a more project-centric focus.
...
llvm-svn: 95455
2010-02-05 23:51:14 +00:00
Douglas Gregor
d320e03eed
Fix a bogus assertion after adjusting the type of a substituted
...
non-type template argument for a non-type template parameter of
pointer type. Fixes PR6244.
llvm-svn: 95447
2010-02-05 22:49:09 +00:00
Douglas Gregor
d225fa05bd
Cope with finding the "instantiated" declaration when we are
...
type-checking within a template definition. In this case, the
"instantiated" declaration is just the declaration itself, found
within the current instantiation. Fixes PR6239.
llvm-svn: 95442
2010-02-05 22:40:03 +00:00
John McCall
ab26cfa58d
Standardize the parsing of function type attributes in a way that
...
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().
llvm-svn: 95436
2010-02-05 21:31:56 +00:00
Ted Kremenek
31e7f0f293
Add guard in RewriteObjC::HandleTopLevelSingleDecl() to not do
...
anything when Sema has issued an error. This matches the behavior in
RewriteObjC::HandleTranslationUnit().
llvm-svn: 95434
2010-02-05 21:28:51 +00:00
Douglas Gregor
a643780483
Revert r95393, which broke Clang's self-host.
...
llvm-svn: 95430
2010-02-05 21:10:36 +00:00
Douglas Gregor
c90dedbda0
Oops, thanks Clang
...
llvm-svn: 95429
2010-02-05 21:07:53 +00:00
Charles Davis
2b2864c436
Convert this test to FileCheck instead of grepping LLVM IR.
...
llvm-svn: 95428
2010-02-05 20:45:48 +00:00
Douglas Gregor
a16b0cae9a
Implement name mangling for template template parameters
...
llvm-svn: 95427
2010-02-05 20:45:00 +00:00
Ted Kremenek
6a93195783
Fix how scan-build finds c++-analyzer to work with checker builds.
...
llvm-svn: 95425
2010-02-05 20:34:14 +00:00
Daniel Dunbar
9c4e4651d5
IRgen: A few more ConvertType cleanups.
...
llvm-svn: 95423
2010-02-05 20:02:42 +00:00
Douglas Gregor
b9397108c5
Fix two issues with the substitution of template template parameters
...
when instantiating the declaration of a member template:
- Only check if the have a template template argument at a specific position
when we already know that we have template arguments at that level;
otherwise, we're substituting for a level-reduced template template
parameter.
- When trying to find an instantiated declaration for a template
template parameter, look into the instantiated scope. This was a
typo, where we had two checks for TemplateTypeParmDecl, one of
which should have been a TemplateTemplateParmDecl.
With these changes, tramp3d-v4 passes -fsyntax-only.
llvm-svn: 95421
2010-02-05 19:54:12 +00:00
Daniel Dunbar
d0bc7b9d13
IRgen: Factor out EmitAggExprToLValue.
...
llvm-svn: 95416
2010-02-05 19:38:31 +00:00
Fariborz Jahanian
df506b934e
Fix a code gen bug accessing 'isa' field via a message call
...
(Fixes radar 7609722).
llvm-svn: 95406
2010-02-05 19:18:30 +00:00
Douglas Gregor
7df89f5d18
When we're parsing an expression that may have looked like a
...
declaration, we can end up with template-id annotation tokens for
types that have not been converted into type annotation tokens. When
this is the case, translate the template-id into a type and parse as
an expression.
llvm-svn: 95404
2010-02-05 19:11:37 +00:00
Daniel Dunbar
8848175547
IRgen: Fix some CreateTempAlloca calls to use ConvertTypeForMem when that is
...
conceptually correct. Review appreciated (Chris, Eli, Anders).
llvm-svn: 95401
2010-02-05 18:56:49 +00:00
Anders Carlsson
cb86e1088a
Fix the bug that was breaking self-host, and re-land the static ctor fixes.
...
llvm-svn: 95400
2010-02-05 18:38:45 +00:00
Charles Davis
5a5473f0f8
Now that we store calling conventions in the types, use them instead of
...
getting the calling convention from the target function, which may or may not
exist. Fixes PR5280.
llvm-svn: 95399
2010-02-05 18:13:10 +00:00
Fariborz Jahanian
73587761e2
Removed non-essential header file from test.
...
llvm-svn: 95396
2010-02-05 18:04:36 +00:00
Douglas Gregor
96e578d29d
Initial skeleton of an AST "importer", which will take AST elements from
...
one context and import them into another context, merging them
according to language-specific rules. This is a skeleton. It doesn't
work, it isn't testable, but I want it in version control.
llvm-svn: 95395
2010-02-05 17:54:41 +00:00
Charles Davis
e4e604b5d6
Testing, 1, 2, 3...
...
Also make the comments I added in r95291 consistent.
llvm-svn: 95394
2010-02-05 17:53:51 +00:00
Daniel Dunbar
363589bded
IRgen: Use hasAggregateLLVMType instead of isSingleValueType() for cases that
...
need to deal with aggregates specially; this is consistent with the rest of IRgen.
Also, simplify EmitParmDecl and don't worry about using Decl::getNameAsString.
llvm-svn: 95393
2010-02-05 17:51:33 +00:00
Fariborz Jahanian
314333847e
Fixes a minor rewriter bug messaging inside a function call.
...
Fixes radar 7617047.
llvm-svn: 95392
2010-02-05 17:48:10 +00:00
Fariborz Jahanian
a7e1dcdc0e
Some clean up of replacement text API no longer needed by
...
my recent changes.
llvm-svn: 95391
2010-02-05 16:43:40 +00:00
Douglas Gregor
af77cd220a
Revert r95363 and r95375, which broke self-host.
...
llvm-svn: 95389
2010-02-05 16:18:08 +00:00
Douglas Gregor
0ab7af6c28
A dependent initializer with zero arguments should return a NULL
...
initializer (for no initialization) rather than a ParenListExpr with
zero arguments in it.
llvm-svn: 95382
2010-02-05 07:56:11 +00:00
Chandler Carruth
bc50da6360
Revert the unused TST_pixel entry from r95335 as it is not listed in the Sema
...
switch, triggering warnings.
llvm-svn: 95381
2010-02-05 07:38:55 +00:00
Douglas Gregor
8c702534cb
Default function arguments for function template specializations
...
always come from the primary template, so gather the instantiation
template arguments from the primary template.
llvm-svn: 95380
2010-02-05 07:33:43 +00:00
Daniel Dunbar
4e9083260b
Tweak inliner thresholds to match llvm-gcc, see r95321.
...
llvm-svn: 95379
2010-02-05 07:32:37 +00:00
Anders Carlsson
c6eec40189
Check in a mangle checker that's turned off by default.
...
llvm-svn: 95377
2010-02-05 07:31:37 +00:00
Douglas Gregor
3ce7493c35
Teach C++ name lookup that it's okay to look in a scope without a
...
context. This happens fairly rarely (which is why we got away with
this bug). Fixes PR6184, where we skipped over the template parameter
scope while tentatively parsing.
llvm-svn: 95376
2010-02-05 07:07:10 +00:00
Anders Carlsson
893555ce66
Fix array initialization test.
...
llvm-svn: 95375
2010-02-05 07:00:11 +00:00
Anders Carlsson
ff338dbf9c
Fix a test case.
...
llvm-svn: 95374
2010-02-05 06:58:06 +00:00
Douglas Gregor
1aa3edbb99
A function declarator with a non-identifier name in an anonymous class
...
is a constructor for that class, right? Fixes PR6238.
llvm-svn: 95367
2010-02-05 06:12:42 +00:00
Ted Kremenek
94e6d98cae
Add test case showing the analyzer invalidates '__block' variables when the block is passed as an argument to an ObjC method.
...
llvm-svn: 95366
2010-02-05 06:10:46 +00:00
Zhongxing Xu
ad0ef84040
More GRState* -> Store changes.
...
llvm-svn: 95365
2010-02-05 05:34:29 +00:00
Zhongxing Xu
0d081f373a
Remove unused parameter.
...
llvm-svn: 95364
2010-02-05 05:24:20 +00:00
Anders Carlsson
ecac409cb0
If a global initializer has a non-trivial destructor it can't be emitted as a constant (even if it has a trivial constructor).
...
llvm-svn: 95363
2010-02-05 05:19:42 +00:00
Zhongxing Xu
f668204a6a
More GRState* -> Store changes.
...
llvm-svn: 95362
2010-02-05 05:18:47 +00:00
Douglas Gregor
6ec89d4953
When adding ADL candidates for overloaded
...
post-increment/post-decrement operators, be sure to consider both
arguments. Fixes PR6237.
llvm-svn: 95361
2010-02-05 05:15:43 +00:00
Zhongxing Xu
7fcd8acbf8
More GRState* -> Store changes.
...
llvm-svn: 95360
2010-02-05 05:06:13 +00:00
Douglas Gregor
8a6d15d5ed
When determining whether a scope specifier is complete, consider a
...
dependent DeclContext to be "complete". Fixes PR6236.
llvm-svn: 95359
2010-02-05 04:39:02 +00:00
Zhongxing Xu
c7b9f950d7
More GRState* -> Store changes.
...
llvm-svn: 95357
2010-02-05 03:01:53 +00:00
Zhongxing Xu
bd96bf1e78
Change LazyCompoundVal to a <Store, MemRegion*> pair. We really don't need to
...
spread GRState* everywhere.
llvm-svn: 95354
2010-02-05 02:26:30 +00:00
Ted Kremenek
01a83104a2
Now that the -cc1 options for analyzer checks have a structured naming, add back scanning for analyzer checks to scan-build.
...
llvm-svn: 95349
2010-02-05 02:18:39 +00:00
Ted Kremenek
2f2692f8ca
Rename -cc1 option '-checker-cfref' to '-analyzer-check-objc-mem'.
...
llvm-svn: 95348
2010-02-05 02:06:54 +00:00
Ted Kremenek
b6e400c87c
Rename -cc1 option '-warn-objc-missing-dealloc' to '-analyzer-check-objc-missing-dealloc'.
...
llvm-svn: 95347
2010-02-05 01:59:21 +00:00
Ted Kremenek
61b506aa8f
Rename -cc1 option '-warn-objc-methodsigs' to '-analyzer-check-objc-methodsigs'.
...
llvm-svn: 95346
2010-02-05 01:57:44 +00:00
Ted Kremenek
2d8ef71ae6
Rename -cc1 option '-warn-objc-unused-ivars' to '-analyzer-check-objc-unused-ivars'.
...
llvm-svn: 95345
2010-02-05 01:55:01 +00:00
Ted Kremenek
d519b83757
Rename -cc1 option '-warn-dead-stores' to '-analyzer-check-dead-stores'.
...
llvm-svn: 95343
2010-02-05 01:52:40 +00:00
Ted Kremenek
ec5b3d45c1
Rename -cc1 option '-warn-security-syntactic' to '-analyzer-check-security-syntactic'.
...
llvm-svn: 95342
2010-02-05 01:50:36 +00:00
Fariborz Jahanian
80fadb5069
Fix a nested ivar reference rewriting bug.
...
(Fixes radar 7607605).
llvm-svn: 95341
2010-02-05 01:35:00 +00:00
John McCall
ae580fede3
Always start tag definitions before completing them. Assert same.
...
Fixes latent and not-so-latent objc++ and blocks++ bugs.
llvm-svn: 95340
2010-02-05 01:33:36 +00:00
John Thompson
2233460de6
First stage of adding AltiVec support
...
llvm-svn: 95335
2010-02-05 00:12:22 +00:00
Douglas Gregor
0c8a172911
Fix a crash with ill-formed code within a method in an ill-formed
...
category implementation, which showed up during (attempted) typo
correction. Fixes <rdar://problem/7605289>.
llvm-svn: 95334
2010-02-04 23:42:48 +00:00
John McCall
67da35c832
Extract a common structure for holding information about the definition
...
of a C++ record. Exposed a lot of problems where various routines were
silently doing The Wrong Thing (or The Acceptable Thing in The Wrong Order)
when presented with a non-definition. Also cuts down on memory usage.
llvm-svn: 95330
2010-02-04 22:26:26 +00:00
Ted Kremenek
1de1707bfc
Move ParseFormatString() and FormatStringHandler back into the analyze_printf namespace.
...
llvm-svn: 95324
2010-02-04 20:46:58 +00:00
Douglas Gregor
c42075a164
Fix an obscure crash found in the Boost.MPL test suite, along with a
...
ton of potential crashes of the same kind. The fundamental problem is
that type creation was following a dangerous pattern when using its
FoldingSets:
1) Use FindNodeOrInsertPos to see if the type is available
2) If not, and we aren't looking at a canonical type, build the
canonical type
3) Build and insert the new node into the FoldingSet
The problem here is that building the canonical type can, in very rare
circumstances, force the hash table inside the FoldingSet to
reallocate. That invalidates the insertion position we computed in
step 1, and in step 3 we end up inserting the new node into the wrong
place. BOOM!
I've audited all of ASTContext, fixing this problem everywhere I found
it. The vast majority of wrong code was C++-specific (and *ahem*
written by me), so I also audited other major folding sets in the C++
code (e.g., template specializations), but found no other instances of
this problem.
llvm-svn: 95315
2010-02-04 18:10:26 +00:00
Anders Carlsson
824e0613de
When binding an lvalue to a reference, we always need to pop temporaries.
...
With this fix, and the other fixes committed today a make check-all with a clang-built LLVM now gives:
Expected Passes : 6933
Expected Failures : 46
Unsupported Tests : 40
Unexpected Failures: 27
which means that we pass 99.96% of all tests :) The resulting 27 tests are all LLVMC tests and seem to be because of differences in the clang and gcc drivers.
llvm-svn: 95313
2010-02-04 17:32:58 +00:00
Anders Carlsson
3460aa1079
Update test.
...
llvm-svn: 95312
2010-02-04 17:29:32 +00:00
Anders Carlsson
9b942c65a5
Fix a bug where we would not mark temporaries as conditional when emitting a conditional operator as an lvalue.
...
llvm-svn: 95311
2010-02-04 17:26:01 +00:00
Anders Carlsson
e5dfc26850
Improve conditional temporaries test.
...
llvm-svn: 95310
2010-02-04 17:23:15 +00:00
Douglas Gregor
eca8f5a49c
When substituting the template argument for a pointer non-type
...
template parameter, perform array/function decay (if needed), take the
address of the argument (if needed), perform qualification conversions
(if needed), and remove any top-level cv-qualifiers from the resulting
expression. Fixes PR6226.
llvm-svn: 95309
2010-02-04 17:21:48 +00:00
Anders Carlsson
ae612d22ac
Rename StartConditionalBranch/FinishConditionalBranch to BeginConditionalBranch/EndConditionalBranch.
...
llvm-svn: 95308
2010-02-04 17:18:07 +00:00
Anders Carlsson
c4325486b9
Fix another pointer-to-member function miscompile, this time when trying to call a virtual member function.
...
llvm-svn: 95307
2010-02-04 17:08:48 +00:00
Anders Carlsson
674cf89301
Improve test.
...
llvm-svn: 95306
2010-02-04 17:06:52 +00:00
Anders Carlsson
7914dad72d
Calculate offset correctly when taking the address of a virtual member function.
...
llvm-svn: 95305
2010-02-04 16:38:05 +00:00
Ted Kremenek
a0032da389
Convert flags in FormatSpecifier to be bitfields instead of doing
...
direct bit manipulation. This is is less error prone, and fixes a bug
in the handling of the LeadingZeroes flag as pointed out by Cristian
Draghici.
llvm-svn: 95298
2010-02-04 07:27:39 +00:00
Ted Kremenek
fc8dbdf3c7
Add assorted test cases from PR 4172.
...
llvm-svn: 95297
2010-02-04 07:25:56 +00:00
John McCall
cddbad000d
Allow calling convention attributes to apply to types. Patch by Chip Davis!
...
llvm-svn: 95291
2010-02-04 05:44:44 +00:00
Zhongxing Xu
319deb83d2
Cast evaluation no longer touch GRState.
...
llvm-svn: 95290
2010-02-04 04:56:43 +00:00
Ted Kremenek
49f878524c
Specially handle casts to 'void' in AdjustedReturnValueChecker.
...
llvm-svn: 95287
2010-02-04 04:18:55 +00:00
Ted Kremenek
33617e055a
Remove stray typo.
...
llvm-svn: 95286
2010-02-04 04:14:49 +00:00
John McCall
d061b4429e
Mangle member expressions. Also invented.
...
llvm-svn: 95284
2010-02-04 02:56:29 +00:00
Zhongxing Xu
4f8b9899bb
Now that CastRetrievedVal returns SVal, there is no need to use CastResult.
...
llvm-svn: 95279
2010-02-04 02:39:47 +00:00
John McCall
11ef09f8b5
Add a cautionary note about the mangling I just invented.
...
llvm-svn: 95275
2010-02-04 01:48:38 +00:00
John McCall
09de8ecd88
Add mangling support for calls, sizeof/alignof, constructor calls,
...
float literals, and unresolved lookups (which required hand-wavey extensions).
llvm-svn: 95273
2010-02-04 01:42:13 +00:00
Ted Kremenek
1e3b95580c
static analyzer: handle casts of a function to a function pointer with
...
a different return type. While we don't emit any errors (yet), at
least we avoid cases where we might crash because of an assertion
failure later on (when the return type differs from what is expected).
llvm-svn: 95268
2010-02-04 00:47:48 +00:00
Fariborz Jahanian
b8355e3b9f
Fix rewriting of 'const' __block variables in
...
the rewriter. (Fixes radar 7607781).
llvm-svn: 95267
2010-02-04 00:07:58 +00:00
Anders Carlsson
b0695ef011
Don't try to fold DeclRefExprs that point to ParmVarDecls. This had the side-effect of always folding the expression to the default argument of the parameter. For example:
...
void f(int a = 10) {
return a;
}
would always return 10, regardless of the passed in argument.
This fixes another 600 test failures. We're now down to only 137 failures!
llvm-svn: 95262
2010-02-03 21:58:41 +00:00
Fariborz Jahanian
80c54b05a0
Fix more rewriting of protocol-quialified 'id' type.
...
(Fixes radar 7607413).
llvm-svn: 95257
2010-02-03 21:29:28 +00:00
Sebastian Redl
2b37272c11
In some contexts, type declarations cannot occur. Pass this information down to ParseClassSpecifier, to make its decision easier. Fixes PR6200.
...
llvm-svn: 95255
2010-02-03 21:21:43 +00:00
Chris Lattner
93ddf80eb7
don't inform comment handlers about comments in #if 0 blocks,
...
doing so invalidates the file guard optimization and is not
in the spirit of "#if 0" because it is supposed to completely
skip everything, even if it isn't lexically valid. Patch by
Abramo Bagnara!
llvm-svn: 95253
2010-02-03 21:06:21 +00:00
Douglas Gregor
21e771e96e
Define two types to be "compatible" in C++ if they are the same, and
...
remove some age-old FIXMEs and C++ workarounds within the
type-compatibility logic.
llvm-svn: 95249
2010-02-03 21:02:30 +00:00
Chris Lattner
5e854b95f3
Declarators can have grouping parens. This fixes rdar://7608537.
...
llvm-svn: 95246
2010-02-03 20:41:24 +00:00
Fariborz Jahanian
8c3f06d09c
Patch to allow reinterpret_cast on objective-c pointers.
...
(partial fix for radar 7591784).
llvm-svn: 95245
2010-02-03 20:32:31 +00:00
Daniel Dunbar
45858d2d59
Revert "Numerous changes to selector handling:", this breaks a whole bunch of
...
working code, for no apparent reason.
llvm-svn: 95244
2010-02-03 20:11:42 +00:00
Sebastian Redl
cbdffb1585
Top-level const changes do not make a qualification conversion. Fixes PR6089.
...
llvm-svn: 95239
2010-02-03 19:36:07 +00:00
Douglas Gregor
2973d406ba
When determining whether a function without a prototype is compatible
...
with a function with a prototype, treat parameters of enumeration type
based on the enumeration type's promotion type.
llvm-svn: 95238
2010-02-03 19:27:29 +00:00
Anders Carlsson
66498388a7
Handle reference binding in aggregate initializers. Fixes another 47 tests.
...
llvm-svn: 95235
2010-02-03 19:13:55 +00:00
Anders Carlsson
9b92ef90f0
Add a band-aid fix for clang self-hosting. A better fix will follow shortly.
...
llvm-svn: 95232
2010-02-03 18:54:13 +00:00
Eli Friedman
eb1df70bdc
Fix for PR6220: compute the correct type for multicharacter literals.
...
llvm-svn: 95228
2010-02-03 18:21:45 +00:00
Anders Carlsson
b247350ef7
More cleanup.
...
llvm-svn: 95226
2010-02-03 17:33:16 +00:00
Anders Carlsson
3b227bd629
Revert the new reference binding code; I came up with a way simpler solution for the reference binding bug that is preventing self-hosting.
...
llvm-svn: 95223
2010-02-03 16:38:03 +00:00
David Chisnall
5bb4efdf3c
First pass at adding GC support for GNU runtime. GC ivar maps not yet constructed, GC flag not set.
...
Please don't try using this yet - the runtime support is still very immature and your code will almost certainly crash if you do.
llvm-svn: 95222
2010-02-03 15:59:02 +00:00