]>
granicus.if.org Git - clang/log
Daniel Dunbar [Wed, 9 Dec 2009 00:04:46 +0000 (00:04 +0000)]
Improve test portability; I can't figure out how to get the regexp library to
match $ correctly with \r\n, unfortunately.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90907
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Dec 2009 23:46:15 +0000 (23:46 +0000)]
Added a missing case to a switch statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90902
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 23:15:55 +0000 (23:15 +0000)]
Increase inlining threshold at -O3, to match llvm-gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90897
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Dec 2009 23:09:15 +0000 (23:09 +0000)]
More detailed analysis of typecast to an objective-c pointer
in objective-c++ mode without being too lenient.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90895
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 8 Dec 2009 22:45:53 +0000 (22:45 +0000)]
Handle unresolved using decls in bare lookups. These are not being adequately
tested. Fixes PR5727.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90893
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 22:22:20 +0000 (22:22 +0000)]
Improve test portability.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90890
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 8 Dec 2009 22:16:41 +0000 (22:16 +0000)]
Make the BugType.h header self-contained so Daniel will stop bugging me ;)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90887
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 8 Dec 2009 22:12:48 +0000 (22:12 +0000)]
Add fixme.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90884
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 21:52:24 +0000 (21:52 +0000)]
Remove include of system header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90883
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 8 Dec 2009 21:46:41 +0000 (21:46 +0000)]
Remove some old code. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90882
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 8 Dec 2009 21:45:46 +0000 (21:45 +0000)]
Don't expand tabs when computing the offset from the code-completion column
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90881
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 21:40:02 +0000 (21:40 +0000)]
Don't use MS extensions in this test, we expect header include markers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90880
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 8 Dec 2009 21:35:00 +0000 (21:35 +0000)]
Pick up MB_LEN_MAX as defined by the system <limits.h>, when it's provided there
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90879
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 21:12:32 +0000 (21:12 +0000)]
Update CGExprConstant for change to emit padding values as undef.
- This fixes 2003-05-21-BitfieldHandling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90876
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 21:12:25 +0000 (21:12 +0000)]
Switch this test to use clang-cc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90875
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Dec 2009 20:04:24 +0000 (20:04 +0000)]
Patch to allow matching 0 with an objective-c pointer type
in objective-c++ mode. Fixes radar
7443165
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90874
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 19:49:51 +0000 (19:49 +0000)]
Unbreak clang-cc handling of -msoft-float / -mfloat-abi=, which I borked.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90873
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 19:49:40 +0000 (19:49 +0000)]
Use clang-cc in this test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90872
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Dec 2009 19:22:33 +0000 (19:22 +0000)]
Patch to allow cstyle cast of objective-c pointers in objective-c++
mode as they are pervasive.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90867
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Dec 2009 18:24:49 +0000 (18:24 +0000)]
Refactor objective-c pointer assignment compatibility logic. No
intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90865
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 8 Dec 2009 17:45:32 +0000 (17:45 +0000)]
Implement template instantiation for exception specifications. Also,
print exception specifications on function types and
declarations. Fixes <rdar://problem/
7450999 >.
There is some poor source-location information here, because we don't
track locations of the types in exception specifications. Filed PR5719.
Failures during template instantiation of the signature of a function
or function template have wrong point-of-instantiation location
information. I'll tackle that with a separate commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90863
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 8 Dec 2009 16:38:12 +0000 (16:38 +0000)]
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=80043
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90860
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 8 Dec 2009 15:38:36 +0000 (15:38 +0000)]
When performing unqualified name lookup in C++, don't look directly
into transparent contexts; instead, we'll look into their nearest
enclosing non-transparent contexts further up the stack. Fixes PR5479.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90859
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Dec 2009 14:04:35 +0000 (14:04 +0000)]
Use StringRef in CGDebugInfo::EmitFunctionStart.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90856
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Dec 2009 13:07:37 +0000 (13:07 +0000)]
Use a Twine to concatenate the name instead of going through std::string.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90854
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Dec 2009 12:38:20 +0000 (12:38 +0000)]
Twinify InitHeaderSearch::AddPath and use it in C++ include path generation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90853
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Dec 2009 12:11:06 +0000 (12:11 +0000)]
Use StringRefs in InitHeaderSearch::AddDelimitedPaths.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90852
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Dec 2009 11:02:29 +0000 (11:02 +0000)]
Use Path.makeAbsolute() and make a constant std::string a const char*.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90851
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 8 Dec 2009 09:21:05 +0000 (09:21 +0000)]
The refactor of implicit member access expressions means we don't need this
horrible isAddressOfOperand hack in TreeTransform, since that syntactic
information is managed by the initial parser callbacks now.
That's enough insomniac commits for one night.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90849
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 8 Dec 2009 09:08:17 +0000 (09:08 +0000)]
DeclRefExpr stores a ValueDecl internally.
Template instantiation can re-use DeclRefExprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90848
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 8 Dec 2009 09:07:59 +0000 (09:07 +0000)]
Refactor builtin function evaluation into a checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90847
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 8 Dec 2009 07:46:18 +0000 (07:46 +0000)]
Correctly implement the C++03 and 0x restrictions on class-member using
declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90843
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 8 Dec 2009 07:42:38 +0000 (07:42 +0000)]
Add CXXRecordDecl::forallBases to walk an inheritance hierarchy with non-lookup
semantics and CXXRecordDecl::isProvablyNotDerivedFrom to assist with
pre-instantiation diagnostics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90842
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 06:54:20 +0000 (06:54 +0000)]
Build fix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90841
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 06:46:18 +0000 (06:46 +0000)]
Fix for PR5707: make sure implicit copy constructors initialize the vtable
pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90840
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 06:22:37 +0000 (06:22 +0000)]
Small compatibility fix for -print-decl-contexts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90838
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 05:40:03 +0000 (05:40 +0000)]
Fix for PR5710: make sure to put function template specializations into the
DeclContext, so they don't completely disappear from the AST.
I don't particularly like this fix, but I don't see any obviously better way
to deal with it, and I think it's pretty clearly an improvement; comments
welcome.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90835
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 8 Dec 2009 05:05:26 +0000 (05:05 +0000)]
brace completion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90833
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 04:09:14 +0000 (04:09 +0000)]
Slight tweak to vtable linkage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90832
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 03:56:49 +0000 (03:56 +0000)]
Misc key function fixes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90831
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Dec 2009 03:35:08 +0000 (03:35 +0000)]
Patch to warn when discarding objective-c pointer type qualifiers
Still some refactoring to do.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90830
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 8 Dec 2009 02:36:01 +0000 (02:36 +0000)]
Remove dead diagnostics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90827
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 02:22:26 +0000 (02:22 +0000)]
Get rid of some diagnostics that don't follow our rules for -pedantic
diagnostics (specifically, that any extension in a compiler-reserved namespace
shouldn't trigger a diagnostic).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90826
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 02:09:46 +0000 (02:09 +0000)]
Fix some direct checks of expressions which might be surrounded by parentheses.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90825
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Dec 2009 01:57:53 +0000 (01:57 +0000)]
Make copy assignment operator synthesis not explode for classes with complex
or non-record aggregate members.
It might be worth spending some time to optimize this code (and the parallel
code for copy constructors) to memcpy in larger chunks, rather than copying
one member at a time. Not sure exactly how beneficial that would be, but
it seems like could help for large classes with, for example, a vtable pointer
forcing the generation of a copy constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90823
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Tue, 8 Dec 2009 01:46:24 +0000 (01:46 +0000)]
Remove several .c_str() to be forward-compatible with StringRef.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90822
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 8 Dec 2009 01:29:31 +0000 (01:29 +0000)]
Fixup catch parameters with class reference type. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90821
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 8 Dec 2009 01:24:23 +0000 (01:24 +0000)]
No need to add tail padding if the resulting LLVM struct type will have the same size as the final record size.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90820
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 7 Dec 2009 23:56:34 +0000 (23:56 +0000)]
A bunch more thunk fixes from misc testing.
(Yes, I do intend to commit some tests for this.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90818
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 7 Dec 2009 23:38:24 +0000 (23:38 +0000)]
Add codegen support for exception specifications. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90817
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 7 Dec 2009 22:46:59 +0000 (22:46 +0000)]
Recover from dot accesses to record pointers and arrow accesses to records.
Patch by Nicola Gigante!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90814
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 7 Dec 2009 22:26:14 +0000 (22:26 +0000)]
Enable '-analyzer-opt-analyze-nested-blocks' by default for testing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90812
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 7 Dec 2009 22:06:12 +0000 (22:06 +0000)]
Add clang-cc option '-analyzer-opt-analyze-nested-blocks' to treat block literals as an entry point for analyzer checks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90810
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 7 Dec 2009 22:05:27 +0000 (22:05 +0000)]
Add analysis support for blocks. This includes a few key changes:
- Refactor the MemRegion hierarchy to distinguish between different StackSpaceRegions for locals and parameters.
- VarRegions for "captured" variables now have the BlockDataRegion as their super region (except those passed by reference)
- Add transfer function support to GRExprEngine for BlockDeclRefExprs.
This change also supports analyzing blocks as an analysis entry point
(top-of-the-stack), which required pushing more context-sensitivity
around in the MemRegion hierarchy via the use of LocationContext
objects. Functionally almost everything is the same, except we track
LocationContexts in a few more areas and StackSpaceRegions now refer
to a StackFrameContext object. In the future we will need to modify
MemRegionManager to allow multiple StackSpaceRegions in flight at once
(for the analysis of multiple stack frames).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90809
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 7 Dec 2009 22:01:30 +0000 (22:01 +0000)]
Add the BlockDecl to the DeclContext.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90808
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 7 Dec 2009 20:25:53 +0000 (20:25 +0000)]
Correctly handle conditional operators involving throw.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90800
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 7 Dec 2009 20:18:11 +0000 (20:18 +0000)]
Make the comma operator consistently call EnsureInsertPoint.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90799
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 7 Dec 2009 20:12:14 +0000 (20:12 +0000)]
Work around emitters that can't deal with dead code contexts yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90796
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 7 Dec 2009 20:09:25 +0000 (20:09 +0000)]
Allow accessing 'isa' via '->' operator.
(fixes radar
7447251 ).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90795
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 7 Dec 2009 19:56:42 +0000 (19:56 +0000)]
Mangle basic_ostream and basic_iostream specializations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90794
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 7 Dec 2009 19:22:29 +0000 (19:22 +0000)]
Switch over to checking .ll files instead of .s files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90786
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 7 Dec 2009 18:58:11 +0000 (18:58 +0000)]
Remove obsolete fallback code for objectsize.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90780
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Mon, 7 Dec 2009 18:30:06 +0000 (18:30 +0000)]
implement PR5274: mark 'restrict' parameters as noalias
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90778
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2009 18:28:29 +0000 (18:28 +0000)]
Shorten the help test for -no-canonical-prefixes, put it behind HelpHidden and
claim it in Driver.cpp instead of Tools.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90777
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 7 Dec 2009 18:08:58 +0000 (18:08 +0000)]
Patch to allow restrict applied to id/Class types.
(fixes radar
7442244 ).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90773
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Mon, 7 Dec 2009 17:18:48 +0000 (17:18 +0000)]
add fedora 12 include path
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90772
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 16:33:19 +0000 (16:33 +0000)]
reduce nesting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90769
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 7 Dec 2009 09:54:55 +0000 (09:54 +0000)]
When in an Objective-C instance method, super is a valid code-completion result
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90758
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 7 Dec 2009 09:51:25 +0000 (09:51 +0000)]
Code completion for Objective-C @ keywords that are statements or expressions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90757
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 7 Dec 2009 09:27:33 +0000 (09:27 +0000)]
Code completion for Objective-C @ directives
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90756
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 7 Dec 2009 09:17:35 +0000 (09:17 +0000)]
Add EvalCallExpr interface to checker, and migrate the no-return function
handler to this interface.
GRExprEngine::CheckerEvalCall() will return true if one of the checkers has
processed the node. In the future this might return void when we have some
default checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90755
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 7 Dec 2009 08:29:39 +0000 (08:29 +0000)]
Instantiated or specialized class templates never have a key function. This (and the previous check-in) fixes PR5557.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90753
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 7 Dec 2009 08:24:59 +0000 (08:24 +0000)]
Rework how virtual member functions are marked. If a class has no key function, we now wait until the end of the translation unit to mark its virtual member functions as references. This lays the groundwork for fixing PR5557.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90752
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 7 Dec 2009 07:59:52 +0000 (07:59 +0000)]
It's OK to try to emit a vtable definition more than once. Fixes PR5697.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90751
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 7 Dec 2009 06:33:48 +0000 (06:33 +0000)]
getTemplateSpecializationKind should be const.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90750
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 7 Dec 2009 06:11:34 +0000 (06:11 +0000)]
Remove empty test cases
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90749
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 7 Dec 2009 04:45:50 +0000 (04:45 +0000)]
Erm, revert for the moment; I didn't test this as thoroughly as I should have
(although it does pass regression tests).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90747
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 7 Dec 2009 04:38:34 +0000 (04:38 +0000)]
Tweak the formula for non-virtual offsets to something which appears a bit
more accurate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90746
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 7 Dec 2009 04:35:11 +0000 (04:35 +0000)]
Move key functions to a separate map.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90745
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 7 Dec 2009 02:54:59 +0000 (02:54 +0000)]
DeclaratorInfo -> TypeSourceInfo. Makes an effort to rename associated variables,
but the results are imperfect.
For posterity, I did:
cat <<EOF > $cmdfile
s/DeclaratorInfo/TypeSourceInfo/g
s/DInfo/TInfo/g
s/TypeTypeSourceInfo/TypeSourceInfo/g
s/SourceTypeSourceInfo/TypeSourceInfo/g
EOF
find lib -name '*.cpp' -not -path 'lib/Parse/*' -exec sed -i '' -f $cmdfile '{}' \;
find lib -name '*.h' -exec sed -i '' -f $cmdfile '{}' \;
find include -name '*.h' -not -path 'include/clang/Parse/*' -not -path 'include/clang/Basic/*' -exec sed -i '' -f $cmdfile '{}' \;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90743
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 02:09:14 +0000 (02:09 +0000)]
add 'F' to a bunch of libm builtins so that codegen doesn't die on them,
pointed out by Charles Davis.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90736
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 01:58:34 +0000 (01:58 +0000)]
fix -dM with variadic macros, PR5699
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90735
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 01:57:13 +0000 (01:57 +0000)]
rename names for consistency
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90734
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 01:49:36 +0000 (01:49 +0000)]
filecheckize
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90733
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 01:42:56 +0000 (01:42 +0000)]
some code cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90732
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 01:38:03 +0000 (01:38 +0000)]
remove some defaulted params for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90731
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 01:36:53 +0000 (01:36 +0000)]
reapply my patch for PR4451, which improves diagnostics for :: vs : confusion.
This time with a fix to bail out when in a dependent context.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90730
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 00:48:47 +0000 (00:48 +0000)]
fix a crash on invalid I found when working on something unrelated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90729
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 7 Dec 2009 00:22:08 +0000 (00:22 +0000)]
Move RequireCompleteType requirement for fields early into ActOnField so that
subsequent code which depends on a complete type does the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90727
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sam Weinig [Sun, 6 Dec 2009 23:57:56 +0000 (23:57 +0000)]
Remove a now out of date and out of place comment about predefined exprs from the FloatingLiteral class declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90726
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sam Weinig [Sun, 6 Dec 2009 23:55:13 +0000 (23:55 +0000)]
Don't print a void return type for C++ constructors and destructors when generating a predefined expr for them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90725
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 6 Dec 2009 22:33:51 +0000 (22:33 +0000)]
Be a bit more complete about accumulating SavedThisAdjustments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90723
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 6 Dec 2009 22:01:30 +0000 (22:01 +0000)]
Work-in-progess rewrite of thunks: move thunk generation outside of vtable
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90722
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 6 Dec 2009 21:27:58 +0000 (21:27 +0000)]
PointerUnion == PointerUnion does not do what I thought it did. Also, fix a thinko in a PointerUnion::get call.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90719
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sun, 6 Dec 2009 21:14:13 +0000 (21:14 +0000)]
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=81871
http://llvm.org/viewvc/llvm-project?view=rev&revision=81936
http://llvm.org/viewvc/llvm-project?view=rev&revision=81945
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90718
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 20:58:07 +0000 (20:58 +0000)]
revert my previous patch, it is breaking something and I don't have time
to fix it ATM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90717
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 6 Dec 2009 20:50:05 +0000 (20:50 +0000)]
Move helper onto CXXMethodDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90716
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 6 Dec 2009 20:23:50 +0000 (20:23 +0000)]
Switch the std::multimap shadow map used in code completion to an
llvm::DenseMap, for a 20% performance improvement in the
Cocoa-big-list performance benchmark.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90715
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 19:11:41 +0000 (19:11 +0000)]
this is really about both PR's, 4452 is "don't crash", 4451 is "recover nicely".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90714
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 19:08:11 +0000 (19:08 +0000)]
implement PR4451, improving error recovery for a mistaken : where a :: was
intended. On the first testcase in the bug, we now produce:
cxx-decl.cpp:12:2: error: unexpected ':' in nested name specifier
y:a a2;
^
::
instead of:
t.cc:8:1: error: C++ requires a type specifier for all declarations
x:a a2;
^
t.cc:8:2: error: invalid token after top level declarator
x:a a2;
^
;
t.cc:9:11: error: use of undeclared identifier 'a2'
x::a a3 = a2;
^
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90713
91177308 -0d34-0410-b5e6-
96231b3b80d8