]>
granicus.if.org Git - clang/log
John McCall [Sat, 29 Aug 2009 08:20:44 +0000 (08:20 +0000)]
Test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80426
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 08:11:13 +0000 (08:11 +0000)]
Fix the breakage by handling indirect instantiations. This would be much
improved if there were a consistent name for getInstantiatedFromMemberX()
across all classes. Cheap refactor if someone wants to do it, but let's get the
buildbots happy first.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80425
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 05:16:22 +0000 (05:16 +0000)]
Instantiate member and base initializers. Patch by Anders Johnsen! (tweaked slightly by me)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80422
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 29 Aug 2009 04:08:08 +0000 (04:08 +0000)]
Fix a couple issues with parsing invalid nested-name-specifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80421
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 03:50:18 +0000 (03:50 +0000)]
For consistency, just make friend declarations AS_public.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80420
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 03:28:20 +0000 (03:28 +0000)]
Fix a last-minute typo and make the test not emit temporaries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80419
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 03:16:09 +0000 (03:16 +0000)]
Ensure code generation for friend declarations in class templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80418
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 29 Aug 2009 02:11:01 +0000 (02:11 +0000)]
Refactor undefined argument checking into a Checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80417
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 01:31:33 +0000 (01:31 +0000)]
Store the SourceLocation of right parentheses in member initializers. Patch by Anders Johnsen!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80416
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 01:13:02 +0000 (01:13 +0000)]
Don't assert that friend declarations must have access specifiers for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80415
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 01:06:32 +0000 (01:06 +0000)]
CreateDeclRefExprs that point to UnresolvedUsingDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80413
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 00:56:38 +0000 (00:56 +0000)]
Add another check for UnresolvedUsingDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80412
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 28 Aug 2009 23:22:54 +0000 (23:22 +0000)]
iGenerate vcalls as we build up the methods. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80405
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 22:54:55 +0000 (22:54 +0000)]
Make sure we actually found a redeclaration before complaining about attributes added to a redeclaration in C++
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80403
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 22:39:52 +0000 (22:39 +0000)]
Add printing of access specifiers to DeclPrinter. The formatting is pretty bad but it works :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80402
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 22:06:43 +0000 (22:06 +0000)]
Remove #if 0'd code that is clearly not needed
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80399
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 28 Aug 2009 22:04:50 +0000 (22:04 +0000)]
path to ir-gen 12.3.1 Conversion by constructor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80398
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 22:03:51 +0000 (22:03 +0000)]
Don't crash when instantiating templates containing anonymous structs/unions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80397
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 21:41:19 +0000 (21:41 +0000)]
Test instantiation of static data members that live within nested
member templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80396
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 21:15:08 +0000 (21:15 +0000)]
Test instantiations of out-of-line member definitions of nested templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80395
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 21:09:48 +0000 (21:09 +0000)]
Fix and test template instantiation for nested member templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80394
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 20:50:45 +0000 (20:50 +0000)]
Tighten up the conversion from a single-level template argument list
to a multi-level template argument list by making it explicit. The
forced auditing of callers found a bug in the instantiation of member
classes inside member templates.
I *love* static type systems.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80391
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 20:33:09 +0000 (20:33 +0000)]
Remove the conversion from a multi-level template argument list back to a single template argument list. We no longer need this crutch
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80390
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 20:31:08 +0000 (20:31 +0000)]
Implement template instantiation for member class templates.
When performing template instantiation of the definitions of member
templates (or members thereof), we build a data structure containing
the template arguments from each "level" of template
instantiation. During template instantiation, we substitute all levels
of template arguments simultaneously.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80389
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 20:25:33 +0000 (20:25 +0000)]
Add uninitialized values test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80388
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 19:52:12 +0000 (19:52 +0000)]
retain/release checker: [CIContext createCGImage...] and friends returned CF
objects that are not automatically garbage collected. This fixes
<rdar://problem/
7174400 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80387
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 19:16:39 +0000 (19:16 +0000)]
Improve support for using decls in the decl printer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80386
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 18:33:53 +0000 (18:33 +0000)]
Add CIndex dependencies: libLLVMC and libclangSema (for IdentifierResolver).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80385
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 18:29:48 +0000 (18:29 +0000)]
Tweak CIndex file to resolve to linking issues with the clang libraries. In
particular, clangFrontend was not being linked in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80384
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 17:57:07 +0000 (17:57 +0000)]
Check for UnresolvedUsingDecl when determining if a declaration is a redeclaration or not.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80383
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 28 Aug 2009 17:53:05 +0000 (17:53 +0000)]
test case for my last patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80382
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 28 Aug 2009 17:52:37 +0000 (17:52 +0000)]
patch to prevent crash in hopelessly incorrect
method definition with labels.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80381
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 17:37:35 +0000 (17:37 +0000)]
Collect multiple levels of template arguments into a new type,
MultiLevelTemplateArgumentList. This is a baby step toward
instantiating member templates; no intended functionality change yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80380
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 16:57:08 +0000 (16:57 +0000)]
Fix this for real.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80377
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 28 Aug 2009 16:30:07 +0000 (16:30 +0000)]
Hide IdxVisitor and remove unimplemented method (causing link errors on x86_64
linux builder).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80376
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 28 Aug 2009 16:23:54 +0000 (16:23 +0000)]
Test case for conversion type method call ir-gen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80375
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 16:22:20 +0000 (16:22 +0000)]
Allow explicit ctors for casts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80374
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 15:55:56 +0000 (15:55 +0000)]
When doing overload resolution, expressions that are value dependent but not type dependent and of integral type should not be treated as null pointer constants.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80369
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 15:33:32 +0000 (15:33 +0000)]
Pass InOverloadResolution all the way down to IsPointerConversion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80368
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 28 Aug 2009 15:28:48 +0000 (15:28 +0000)]
Lot's of little changes to get the C-based indexing API going...
Work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80367
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 15:18:15 +0000 (15:18 +0000)]
Instantiate unresolved using declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80366
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 28 Aug 2009 15:11:24 +0000 (15:11 +0000)]
ir-gen related patch for type conversion
with class type conversion methods. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80365
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 28 Aug 2009 12:07:44 +0000 (12:07 +0000)]
Add CX prefix to Cursor and move a comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80359
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 28 Aug 2009 07:59:38 +0000 (07:59 +0000)]
Omnibus friend decl refactoring. Instead of cloning AST classes for friend
declarations of same, introduce a single AST class and add appropriate bits
(encoded in the namespace) for whether a decl is "real" or not. Much hackery
about previously-declared / not-previously-declared, but it's essentially
mandated by the standard that friends alter lookup, and this is at least
fairly non-intrusive.
Refactor the Sema methods specific to friends for cleaner flow and less nesting.
Incidentally solve a few bugs, but I remain confident that we can put them back.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80353
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 05:49:21 +0000 (05:49 +0000)]
Create UnresolvedUsingDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80346
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 05:40:36 +0000 (05:40 +0000)]
Factor declaration building out to Sema::BuildUsingDeclaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80337
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 05:30:28 +0000 (05:30 +0000)]
Check in UnresolvedUsingDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80336
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 04:49:15 +0000 (04:49 +0000)]
Use SymbolicRegion instead of CodeTextRegion for symbolic function
pointers. Most logic cares first about whether or not a region is
symbolic, and second if represents code. This should fix a series of
silent corner case bugs (as well as simplify a bunch of code).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80335
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 03:35:18 +0000 (03:35 +0000)]
More work on using declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80333
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 03:16:11 +0000 (03:16 +0000)]
Many improvements to using declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80332
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Aug 2009 00:35:39 +0000 (00:35 +0000)]
Accept and ignore a few more -Wflags.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80323
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 00:30:56 +0000 (00:30 +0000)]
Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 00:24:55 +0000 (00:24 +0000)]
Use C++ style comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80320
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 00:08:09 +0000 (00:08 +0000)]
Implement: <rdar://problem/
6337132 > CWE-273: Failure to Check Whether Privileges
Were Dropped Successfully
Patch by Geoff Keating!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80313
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 27 Aug 2009 23:50:46 +0000 (23:50 +0000)]
Update exports list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80306
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 27 Aug 2009 23:35:55 +0000 (23:35 +0000)]
When looking for overloaded member operators, make sure to instantiate
class template specializations (when possible) and look into base
classes. Thanks to Eli for the test case!
FIXME -=1.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80302
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 23:22:19 +0000 (23:22 +0000)]
convert to filecheck and force a triple so that this passes on big
endian hosts. Fixes PR4792
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 27 Aug 2009 23:16:26 +0000 (23:16 +0000)]
CFG construction: Abort CFG construction when processing a CompoundStmt if any
of its subexpressions resulted in a "bad CFG".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80298
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 27 Aug 2009 22:17:37 +0000 (22:17 +0000)]
Rename 'bindExpr' to 'BindExpr'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80294
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 27 Aug 2009 22:15:20 +0000 (22:15 +0000)]
Move the AnalysisContext* from GRState to Environment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80293
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 22:01:41 +0000 (22:01 +0000)]
Define _GNU_SOURCE in C++ mode so that clang works with GNU libstdc++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80289
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 22:00:18 +0000 (22:00 +0000)]
Add __builtin_memchr (used by GNU libstdc++).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80288
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 21:19:33 +0000 (21:19 +0000)]
Clean up CodeGenFunction::EmitCastLValue to use the cast kind. Error
out for user-defined conversions instead of crashing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80282
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 27 Aug 2009 19:51:58 +0000 (19:51 +0000)]
Fill in Index.h header file and add stubs to implementation file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80279
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 19:11:42 +0000 (19:11 +0000)]
Fix for PR4794 (instantiating friend class decl); this version shouldn't
cause any regressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80277
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Thu, 27 Aug 2009 19:07:16 +0000 (19:07 +0000)]
Extend the exception spec test even further. Now I need to implement this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80276
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 19:02:44 +0000 (19:02 +0000)]
Remove unnecessary include.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80275
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 19:01:37 +0000 (19:01 +0000)]
Don't create a junk file in the source directory.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80274
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 18:44:04 +0000 (18:44 +0000)]
Back out bad piece of r80272. Will look at fixing this a different way.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80273
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 18:38:56 +0000 (18:38 +0000)]
PR4794: Make instantiating friend class decls not crash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80272
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 17:37:39 +0000 (17:37 +0000)]
Add an InOverloadResolution flag to TryCopyInitialization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80261
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 17:30:43 +0000 (17:30 +0000)]
Remove more default arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 17:24:15 +0000 (17:24 +0000)]
Remove default arguments from TryImplicitConversion and fix a bug found in the process.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80258
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 17:20:36 +0000 (17:20 +0000)]
PR4800: Implement -Wpointer-arith. I think this is the correct behavior
per the documentation, although I'm not completely sure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80257
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 17:18:13 +0000 (17:18 +0000)]
Remove default argument from TryCopyInitialization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80256
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 17:14:02 +0000 (17:14 +0000)]
Revert the flags change for now, I have a better idea for this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80255
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 27 Aug 2009 16:57:43 +0000 (16:57 +0000)]
Implement instantiation of the declarations of member function
templates within class templates, producing a member function template
of a class template specialization. If you can parse that, I'm
sorry. Example:
template<typename T>
struct X {
template<typename U> void f(T, U);
};
When we instantiate X<int>, we now instantiate the declaration
X<int>::f, which looks like this:
template<typename U> void X<int>::f(int, U);
The path this takes through
TemplateDeclInstantiator::VisitCXXMethodDecl is convoluted and
ugly, but I don't know how to improve it yet. I'm resting my hopes on
the multi-level substitution required to instantiate definitions of
nested templates, which may simplify this code as well.
More testing to come...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80252
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 16:01:18 +0000 (16:01 +0000)]
Add a OverloadResolutionFlags and start converting some of the overload methods over to using it instead of bools arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80248
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 27 Aug 2009 09:14:03 +0000 (09:14 +0000)]
Remove unused utility methods of GRStmtNodeBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 27 Aug 2009 08:52:44 +0000 (08:52 +0000)]
Remove unused utility methods of GRStmtNodeBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80236
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 Aug 2009 07:30:55 +0000 (07:30 +0000)]
restore indentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80229
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 Aug 2009 07:10:46 +0000 (07:10 +0000)]
add missing header
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80228
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 27 Aug 2009 06:55:26 +0000 (06:55 +0000)]
Remove a unused member variable. Instead query the option from AnalysisManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80226
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 Aug 2009 06:49:21 +0000 (06:49 +0000)]
iterator.h is no more. Be standards compliant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80225
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 27 Aug 2009 06:03:53 +0000 (06:03 +0000)]
When checking whether one declaration context encloses another, make sure to look at the primary contexts. Thanks to Eli for the test case
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80212
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 05:57:30 +0000 (05:57 +0000)]
Don't check member and base initializers if the constructor is dependent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80211
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 05:45:01 +0000 (05:45 +0000)]
Use early returns to avoid indentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80209
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 27 Aug 2009 05:09:36 +0000 (05:09 +0000)]
Stub out an error so we don't crash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80207
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 05:08:22 +0000 (05:08 +0000)]
Add a BuildCXXTemporaryObjectExpr and use it so default arguments will be instantiated correctly for temporary object expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80206
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 03:53:50 +0000 (03:53 +0000)]
In ActOnCXXTypeConstructExpr, check that the type is complete and non-abstract before creating any expressions. This assures that any templates are instantiated if necessary.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80200
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 27 Aug 2009 01:39:13 +0000 (01:39 +0000)]
Simplify 'Environment' to contain only one map from 'const Stmt*' to SVals, greatly simplifying the logic of the analyzer in many places. We now only distinguish between block-level expressions and subexpressions in Environment::RemoveDeadBindings and GRState pretty-printing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80194
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 27 Aug 2009 01:09:45 +0000 (01:09 +0000)]
Testcase for an almost recent checkin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80189
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 27 Aug 2009 00:29:21 +0000 (00:29 +0000)]
Cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80185
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 27 Aug 2009 00:13:57 +0000 (00:13 +0000)]
New RequireNonAbstractType function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80183
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 26 Aug 2009 23:45:07 +0000 (23:45 +0000)]
Bye-bye old RequireCompleteType.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80182
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 26 Aug 2009 23:38:08 +0000 (23:38 +0000)]
Fixup codegen for static dispatch to a virtual function that was
almost correct. :-)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80181
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 26 Aug 2009 23:34:30 +0000 (23:34 +0000)]
Tweak the list of open projects for C++
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80179
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 26 Aug 2009 23:31:30 +0000 (23:31 +0000)]
ir-gen for type convesion of class objects. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80178
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 26 Aug 2009 23:26:04 +0000 (23:26 +0000)]
Make sure to bump the reference count of the last element in the ParenListExpr representing the direct initializer of a declaration
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80177
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 26 Aug 2009 23:00:36 +0000 (23:00 +0000)]
Remove another unused argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80175
91177308 -0d34-0410-b5e6-
96231b3b80d8