]> granicus.if.org Git - clang/log
clang
15 years agoHandle reinterpret_cast between integral types and pointer types.
Anders Carlsson [Tue, 15 Sep 2009 04:48:33 +0000 (04:48 +0000)]
Handle reinterpret_cast between integral types and pointer types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81837 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCodegen support for nullptr from C++0x.
Anders Carlsson [Tue, 15 Sep 2009 04:39:46 +0000 (04:39 +0000)]
Codegen support for nullptr from C++0x.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81835 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPer feedback from Eli, recognize in the transfer function logic for
Ted Kremenek [Tue, 15 Sep 2009 04:19:09 +0000 (04:19 +0000)]
Per feedback from Eli, recognize in the transfer function logic for
__builtin_offsetof in the static analyzer that __builtin_offsetof is
not guaranteed to return an integer constant.  We will need to shore
this up later, but now at least we have correct support for when this
*is* an integer constant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81830 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix typo in comment.
Ted Kremenek [Tue, 15 Sep 2009 03:28:00 +0000 (03:28 +0000)]
Fix typo in comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81825 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd static analyzer transfer function support for __builtin_offsetof.
Ted Kremenek [Tue, 15 Sep 2009 00:40:32 +0000 (00:40 +0000)]
Add static analyzer transfer function support for __builtin_offsetof.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81820 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIssue a good diagnostics when attempt to select
Fariborz Jahanian [Tue, 15 Sep 2009 00:10:11 +0000 (00:10 +0000)]
Issue a good diagnostics when attempt to select
a type convesion function results in ambiguity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81812 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoclang tracks multiple levels of macro expansion
Chris Lattner [Mon, 14 Sep 2009 23:44:08 +0000 (23:44 +0000)]
clang tracks multiple levels of macro expansion

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81811 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDiagnose taking the address of a bit-field inside a conditional operator.
Anders Carlsson [Mon, 14 Sep 2009 23:15:26 +0000 (23:15 +0000)]
Diagnose taking the address of a bit-field inside a conditional operator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81808 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement partial ordering of function templates when calling a
Douglas Gregor [Mon, 14 Sep 2009 23:02:14 +0000 (23:02 +0000)]
Implement partial ordering of function templates when calling a
conversion function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81807 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSlightly improve the test for partial ordering of overloaded function
Douglas Gregor [Mon, 14 Sep 2009 22:31:20 +0000 (22:31 +0000)]
Slightly improve the test for partial ordering of overloaded function
templates.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81806 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTest function template partial ordering when resolving the address of
Douglas Gregor [Mon, 14 Sep 2009 22:02:01 +0000 (22:02 +0000)]
Test function template partial ordering when resolving the address of
an overloaded function (template).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81804 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix: <rdar://problem/5905851> do not report a leak when post-dominated by a call
Ted Kremenek [Mon, 14 Sep 2009 22:01:32 +0000 (22:01 +0000)]
Fix: <rdar://problem/5905851> do not report a leak when post-dominated by a call
                              to a noreturn or panic function

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81803 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate tests
Anders Carlsson [Mon, 14 Sep 2009 22:00:20 +0000 (22:00 +0000)]
Update tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81802 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSkeletal support for friend class templates.
John McCall [Mon, 14 Sep 2009 21:59:20 +0000 (21:59 +0000)]
Skeletal support for friend class templates.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81801 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoARM/[A]APCS: Ignore empty records passed as arguments.
Daniel Dunbar [Mon, 14 Sep 2009 21:54:03 +0000 (21:54 +0000)]
ARM/[A]APCS: Ignore empty records passed as arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81798 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFor consistency, use "bit-field" instead of "bitfield" in our diagnostics.
Anders Carlsson [Mon, 14 Sep 2009 21:48:24 +0000 (21:48 +0000)]
For consistency, use "bit-field" instead of "bitfield" in our diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81797 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefactor MarkDeductedTemplateParameters into
Douglas Gregor [Mon, 14 Sep 2009 21:25:05 +0000 (21:25 +0000)]
Refactor MarkDeductedTemplateParameters into
MarkUsedTemplateParameters, which is able to mark template parameters
used within non-deduced contexts as well as deduced contexts. Use this
to finish the implementation of [temp.deduct.partial]p11.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81794 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUsed visible conversion function api to do overload
Fariborz Jahanian [Mon, 14 Sep 2009 20:41:01 +0000 (20:41 +0000)]
Used visible conversion function api to do overload
resolution of type conversion functions in base and
current class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81784 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement FIXME: free up BugReportEquivClass objects when deleting BugTypes.
Ted Kremenek [Mon, 14 Sep 2009 20:40:59 +0000 (20:40 +0000)]
Implement FIXME: free up BugReportEquivClass objects when deleting BugTypes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81783 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoForce triple.
Daniel Dunbar [Mon, 14 Sep 2009 20:21:18 +0000 (20:21 +0000)]
Force triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81781 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago-Wchar-subscripts should not warn for explicit signed char subscripts either. Another...
Sam Weinig [Mon, 14 Sep 2009 20:14:57 +0000 (20:14 +0000)]
-Wchar-subscripts should not warn for explicit signed char subscripts either. Another fix for PR4978.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81780 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTighten up checking of non-dependent arguments as part of template
Douglas Gregor [Mon, 14 Sep 2009 20:00:47 +0000 (20:00 +0000)]
Tighten up checking of non-dependent arguments as part of template
argument deduction. This fixes the new test case (since partial
ordering does not have a "verify the results of deduction" step), and
will allow failed template argument deductions to return more quickly
for, e.g., matching class template partial specializations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81779 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSmall fix to stop CGObjCGNU emitting symbols that break some versions of gas.
David Chisnall [Mon, 14 Sep 2009 19:04:10 +0000 (19:04 +0000)]
Small fix to stop CGObjCGNU emitting symbols that break some versions of gas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81778 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement partial ordering of function template specializations
Douglas Gregor [Mon, 14 Sep 2009 18:39:43 +0000 (18:39 +0000)]
Implement partial ordering of function template specializations
(C++ [temp.func.order]).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81777 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago-Wchar-subscripts should not warn for unsigned char subscripts. Fixes PR4978.
Sam Weinig [Mon, 14 Sep 2009 18:17:16 +0000 (18:17 +0000)]
-Wchar-subscripts should not warn for unsigned char subscripts. Fixes PR4978.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81776 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove duplicate definition of char-subscripts DiagGroup.
Sam Weinig [Mon, 14 Sep 2009 17:50:09 +0000 (17:50 +0000)]
Remove duplicate definition of char-subscripts DiagGroup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81775 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemoved couple of FIXME comments from test case.
Fariborz Jahanian [Mon, 14 Sep 2009 17:32:50 +0000 (17:32 +0000)]
Removed couple of FIXME comments from test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81774 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUsing the property dot-syntax to invoke a non-eixsting
Fariborz Jahanian [Mon, 14 Sep 2009 16:40:48 +0000 (16:40 +0000)]
Using the property dot-syntax to invoke a non-eixsting
structure-valued setter should cause a user error instead of
crash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81769 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove an unnecessary FunctionDecl parameter to the synthesizing functions.
Anders Carlsson [Mon, 14 Sep 2009 05:32:02 +0000 (05:32 +0000)]
Remove an unnecessary FunctionDecl parameter to the synthesizing functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81759 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix subtle bug in generating LLVM function declarations for builtin functions.
Daniel Dunbar [Mon, 14 Sep 2009 04:33:21 +0000 (04:33 +0000)]
Fix subtle bug in generating LLVM function declarations for builtin functions.

The decl wasn't being passed down, which meant that function attributes were not
being set correctly. This is particularly important for ARM, since it wants to
override the calling convention. Instead we would emit the builtin with the
wrong calling convention, and instcombine would come along and merrily shred all
the calls to it. :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81756 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoARM/APCS: Don't treat structs w/ floating point types as "integer like".
Daniel Dunbar [Mon, 14 Sep 2009 02:20:34 +0000 (02:20 +0000)]
ARM/APCS: Don't treat structs w/ floating point types as "integer like".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81748 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for -Wchar-subscripts. Fixes PR4801.
Sam Weinig [Mon, 14 Sep 2009 01:58:58 +0000 (01:58 +0000)]
Add support for -Wchar-subscripts. Fixes PR4801.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81747 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf a function call returns a reference, don't bind it to a temporary.
Anders Carlsson [Mon, 14 Sep 2009 01:30:44 +0000 (01:30 +0000)]
If a function call returns a reference, don't bind it to a temporary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81743 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement CodeGenFunction::EmitCXXExprWithTemporariesLValue.
Anders Carlsson [Mon, 14 Sep 2009 01:10:45 +0000 (01:10 +0000)]
Implement CodeGenFunction::EmitCXXExprWithTemporariesLValue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81738 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome minor clang/ARM/AAPCS tweaks.
Daniel Dunbar [Mon, 14 Sep 2009 00:56:55 +0000 (00:56 +0000)]
Some minor clang/ARM/AAPCS tweaks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81737 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.
Daniel Dunbar [Mon, 14 Sep 2009 00:35:03 +0000 (00:35 +0000)]
Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81735 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport -mabi= for clang/ARM.
Daniel Dunbar [Mon, 14 Sep 2009 00:34:46 +0000 (00:34 +0000)]
Support -mabi= for clang/ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81734 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle delete where the class has a virtual destructor.
Anders Carlsson [Mon, 14 Sep 2009 00:16:25 +0000 (00:16 +0000)]
Handle delete where the class has a virtual destructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81733 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoARM target tweaks.
Daniel Dunbar [Mon, 14 Sep 2009 00:02:24 +0000 (00:02 +0000)]
ARM target tweaks.
 - Change TargetData string to match llvm-gcc.
 - Some -target-abi support for 'apcs-gnu', most importantly the alignment of double and long long changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81732 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd -target-abi clang-cc option, currently unused.
Daniel Dunbar [Mon, 14 Sep 2009 00:02:12 +0000 (00:02 +0000)]
Add -target-abi clang-cc option, currently unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81731 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a bug in getFriendObjectKind where we would clear out all mask bits except IDNS_T...
Anders Carlsson [Sun, 13 Sep 2009 23:59:13 +0000 (23:59 +0000)]
Fix a bug in getFriendObjectKind where we would clear out all mask bits except IDNS_TagFriend and IDNS_OrdinaryFriend but then check for IDNS_Tag and IDNS_Ordinary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81730 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPerform the C++ specific semantic checks of a function declaration after it's been...
Anders Carlsson [Sun, 13 Sep 2009 21:33:06 +0000 (21:33 +0000)]
Perform the C++ specific semantic checks of a function declaration after it's been merged with the previous declaration. This ensures that getPreviousDecl() will have the right value when ActOnConversionDeclarator is called.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81720 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCXXMethodDecl::isVirtual needs to check the canonical declaration. Fixes PR4878.
Anders Carlsson [Sun, 13 Sep 2009 21:01:57 +0000 (21:01 +0000)]
CXXMethodDecl::isVirtual needs to check the canonical declaration. Fixes PR4878.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81715 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix another byref bug. This should hopefully get QuickLookPlugins building successfully.
Anders Carlsson [Sun, 13 Sep 2009 17:55:13 +0000 (17:55 +0000)]
Fix another byref bug. This should hopefully get QuickLookPlugins building successfully.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81681 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorewrite readme.
Chris Lattner [Sun, 13 Sep 2009 17:23:57 +0000 (17:23 +0000)]
rewrite readme.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81678 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd utility to evaluate lvalues which are an offset relative to a stack
Eli Friedman [Sun, 13 Sep 2009 10:17:44 +0000 (10:17 +0000)]
Add utility to evaluate lvalues which are an offset relative to a stack
location.  Patch by Enea Zaffanella.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81672 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoARM/APCS: Only "integer like" aggregates should be returned in r0 (following
Daniel Dunbar [Sun, 13 Sep 2009 08:03:58 +0000 (08:03 +0000)]
ARM/APCS: Only "integer like" aggregates should be returned in r0 (following
gcc's interpretation of APCS' somewhat loose specification).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81671 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRework the way we determine whether an externally visible symbol is
Douglas Gregor [Sun, 13 Sep 2009 07:46:26 +0000 (07:46 +0000)]
Rework the way we determine whether an externally visible symbol is
generated for an inline function definition, taking into account C99
and GNU inline/extern inline semantics. This solution is simpler,
cleaner, and fixes PR4536.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81670 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome formatting tweaks to clang(1)
Daniel Dunbar [Sun, 13 Sep 2009 02:21:55 +0000 (02:21 +0000)]
Some formatting tweaks to clang(1)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81668 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd minimal INSTALL.txt
Daniel Dunbar [Sun, 13 Sep 2009 02:21:31 +0000 (02:21 +0000)]
Add minimal INSTALL.txt

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81667 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoForce triple to avoid spurious differences due to runtime choice.
Daniel Dunbar [Sun, 13 Sep 2009 01:45:29 +0000 (01:45 +0000)]
Force triple to avoid spurious differences due to runtime choice.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81666 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd RUN line.
Daniel Dunbar [Sat, 12 Sep 2009 23:06:30 +0000 (23:06 +0000)]
Add RUN line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81654 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't use the PredefinedExpr string as the global variable name, these don't
Daniel Dunbar [Sat, 12 Sep 2009 23:06:21 +0000 (23:06 +0000)]
Don't use the PredefinedExpr string as the global variable name, these don't
make very nice symbols, just use the function name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81653 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorewrite the parsing code for -miphoneos-version-min and
Chris Lattner [Sat, 12 Sep 2009 22:45:58 +0000 (22:45 +0000)]
rewrite the parsing code for -miphoneos-version-min and
-mmacosx-version-min to work on llvm::Triple.  Simplify
it to use x-'0' to parse single digit integer strings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81646 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agowhitespace fix
Chris Lattner [Sat, 12 Sep 2009 22:45:21 +0000 (22:45 +0000)]
whitespace fix

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81644 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate CMake files.
Benjamin Kramer [Sat, 12 Sep 2009 21:18:26 +0000 (21:18 +0000)]
Update CMake files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81631 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore improvement in building list of visible conversion
Fariborz Jahanian [Sat, 12 Sep 2009 19:52:10 +0000 (19:52 +0000)]
More improvement in building list of visible conversion
functions for a class when needed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81624 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a test for PR3733.
Anders Carlsson [Sat, 12 Sep 2009 19:35:43 +0000 (19:35 +0000)]
Add a test for PR3733.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81622 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemoved Context argument from couple of methods which don't
Fariborz Jahanian [Sat, 12 Sep 2009 19:02:34 +0000 (19:02 +0000)]
Removed Context argument from couple of methods which don't
need them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81621 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd FIXME for alignments that won't be honored.
Mike Stump [Sat, 12 Sep 2009 18:58:28 +0000 (18:58 +0000)]
Add FIXME for alignments that won't be honored.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81620 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWe can't have ctors in the vtable (right Doug?) :-)
Mike Stump [Sat, 12 Sep 2009 18:57:58 +0000 (18:57 +0000)]
We can't have ctors in the vtable (right Doug?)  :-)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81619 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore work toward having an access method for visible
Fariborz Jahanian [Sat, 12 Sep 2009 18:26:03 +0000 (18:26 +0000)]
More work toward having an access method for visible
conversion functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81618 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle CK_DerivedToBase when emitting lvalue casts.
Anders Carlsson [Sat, 12 Sep 2009 16:16:49 +0000 (16:16 +0000)]
Handle CK_DerivedToBase when emitting lvalue casts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81614 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSmallVectorize preprocessor's token cache. Testing shows there is almost never
Benjamin Kramer [Sat, 12 Sep 2009 09:45:28 +0000 (09:45 +0000)]
SmallVectorize preprocessor's token cache. Testing shows there is almost never
more than one token in the cache.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81612 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen necessary, null check the base value in GetAddressCXXOfBaseClass.
Anders Carlsson [Sat, 12 Sep 2009 06:04:24 +0000 (06:04 +0000)]
When necessary, null check the base value in GetAddressCXXOfBaseClass.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81611 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle derived-to-base conversion in CGExprScalar::EmitCast, if the cast kind is...
Anders Carlsson [Sat, 12 Sep 2009 04:57:16 +0000 (04:57 +0000)]
Handle derived-to-base conversion in CGExprScalar::EmitCast, if the cast kind is CK_DerivedToBase.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81610 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse the correct CastKind for derived-to-base pointer conversions.
Anders Carlsson [Sat, 12 Sep 2009 04:46:44 +0000 (04:46 +0000)]
Use the correct CastKind for derived-to-base pointer conversions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81608 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhoops, add CGCXXClass.cpp
Anders Carlsson [Sat, 12 Sep 2009 04:27:24 +0000 (04:27 +0000)]
Whoops, add CGCXXClass.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81607 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a NullCheckValue argume...
Anders Carlsson [Sat, 12 Sep 2009 04:26:35 +0000 (04:26 +0000)]
Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a NullCheckValue argument (currently unused).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81606 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd CGCXXClass.cpp. and move CodeGenFunction::AddressCXXOfBaseClass there.
Anders Carlsson [Sat, 12 Sep 2009 03:29:09 +0000 (03:29 +0000)]
Add CGCXXClass.cpp. and move CodeGenFunction::AddressCXXOfBaseClass there.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81604 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for __block variables with alignment greater than __alignof(void *).
Anders Carlsson [Sat, 12 Sep 2009 02:44:18 +0000 (02:44 +0000)]
Add support for __block variables with alignment greater than __alignof(void *).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81602 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFor __block variables, cache the LLVM types as well as which LLVM field where the...
Anders Carlsson [Sat, 12 Sep 2009 02:14:24 +0000 (02:14 +0000)]
For __block variables, cache the LLVM types as well as which LLVM field where the variable is stored.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81599 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoStub out room for ARM APCS ABI implementation (and AAPCS_VFP, although you can't
Daniel Dunbar [Sat, 12 Sep 2009 01:00:39 +0000 (01:00 +0000)]
Stub out room for ARM APCS ABI implementation (and AAPCS_VFP, although you can't
hit this via command line options yet).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81595 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFormatting fixes.
Daniel Dunbar [Sat, 12 Sep 2009 00:59:49 +0000 (00:59 +0000)]
Formatting fixes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81594 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange CodeGenModule::ConstructTypeAttributes to return the calling convention
Daniel Dunbar [Sat, 12 Sep 2009 00:59:20 +0000 (00:59 +0000)]
Change CodeGenModule::ConstructTypeAttributes to return the calling convention
to use, and allow the ABI implementation to override the calling convention.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81593 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove unnecessary ASTContext parameter from FunctionDecl::isBuiltinID
Douglas Gregor [Sat, 12 Sep 2009 00:22:50 +0000 (00:22 +0000)]
Remove unnecessary ASTContext parameter from FunctionDecl::isBuiltinID

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81590 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove unnecessary ASTContext parameters from isMain and isExternC
Douglas Gregor [Sat, 12 Sep 2009 00:17:51 +0000 (00:17 +0000)]
Remove unnecessary ASTContext parameters from isMain and isExternC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81589 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEliminate FunctionDecl::getBodyIfAvailable
Douglas Gregor [Sat, 12 Sep 2009 00:08:48 +0000 (00:08 +0000)]
Eliminate FunctionDecl::getBodyIfAvailable

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81588 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a crash when generating vtables that contain destructors.
Anders Carlsson [Sat, 12 Sep 2009 00:00:29 +0000 (00:00 +0000)]
Fix a crash when generating vtables that contain destructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81587 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd basic covariant thunk generation support. WIP.
Mike Stump [Fri, 11 Sep 2009 23:25:56 +0000 (23:25 +0000)]
Add basic covariant thunk generation support.  WIP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81585 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen performing name lookup within a class template or class template
Douglas Gregor [Fri, 11 Sep 2009 22:57:37 +0000 (22:57 +0000)]
When performing name lookup within a class template or class template
partial specialization, make sure we look into non-dependent base
classes (but not dependent base classes). Fixes PR4951.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81584 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoNo need to build the visible conversionfunction list for root class.
Fariborz Jahanian [Fri, 11 Sep 2009 22:27:50 +0000 (22:27 +0000)]
No need to build the visible conversionfunction list for root class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81583 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSet the calling convention based on the CGFunctionInfo.
Daniel Dunbar [Fri, 11 Sep 2009 22:25:00 +0000 (22:25 +0000)]
Set the calling convention based on the CGFunctionInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81582 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd CallingConvention argument to CGFunctionInfo.
Daniel Dunbar [Fri, 11 Sep 2009 22:24:53 +0000 (22:24 +0000)]
Add CallingConvention argument to CGFunctionInfo.
 - Currently unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81581 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIntroduce "DefinedOrUnknownSVal" into the SVal class hierarchy, providing a way
Ted Kremenek [Fri, 11 Sep 2009 22:07:28 +0000 (22:07 +0000)]
Introduce "DefinedOrUnknownSVal" into the SVal class hierarchy, providing a way
to statically type various methods in SValuator/GRState as required either a
defined value or a defined-but-possibly-unknown value. This leads to various
logic cleanups in GRExprEngine, and lets the compiler enforce via type checking
our assumptions about what symbolic values are possibly undefined and what are
not.

Along the way, clean up some of the static analyzer diagnostics regarding the uses of uninitialized values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81579 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPatch to build visible conversion function list lazily and make its
Fariborz Jahanian [Fri, 11 Sep 2009 21:44:33 +0000 (21:44 +0000)]
Patch to build visible conversion function list lazily and make its
first use in calling the conversion function on delete statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81576 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSlight improvement for extern templates, so that an explicit
Douglas Gregor [Fri, 11 Sep 2009 21:19:12 +0000 (21:19 +0000)]
Slight improvement for extern templates, so that an explicit
instantiation definition can follow an explicit instantiation
declaration. This is as far as I want to go with extern templates now,
but they will still need quite a bit more work to get all of the C++0x
semantics right.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81573 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAlter Action's friend interface to prepare for templated friend declarations and
John McCall [Fri, 11 Sep 2009 21:02:39 +0000 (21:02 +0000)]
Alter Action's friend interface to prepare for templated friend declarations and
to stop making promises we can't currently keep.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81571 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix use of uninitialized, David please check.
Daniel Dunbar [Fri, 11 Sep 2009 20:56:53 +0000 (20:56 +0000)]
Fix use of uninitialized, David please check.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81570 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImprove testing for extern temp templates, slightly. We are (properly) suppressing...
Douglas Gregor [Fri, 11 Sep 2009 20:35:49 +0000 (20:35 +0000)]
Improve testing for extern temp templates, slightly. We are (properly) suppressing the implicit instantiation of members of extern templates

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81567 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTweak the semantics of FunctionDecl::isOutOfLine to consider an
Douglas Gregor [Fri, 11 Sep 2009 20:15:17 +0000 (20:15 +0000)]
Tweak the semantics of FunctionDecl::isOutOfLine to consider an
instantiation of a member function template or member function of a
class template to be out-of-line if the definition of that function
template or member function was defined out-of-line. This ensures that
we get the correct linkage for explicit instantiations of out-of-line
definitions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81562 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd test for dependent PredefinedExprs.
Sam Weinig [Fri, 11 Sep 2009 18:49:46 +0000 (18:49 +0000)]
Add test for dependent PredefinedExprs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81550 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUndid my yesterday patch which is not needed with an upcoming patch.
Fariborz Jahanian [Fri, 11 Sep 2009 18:46:22 +0000 (18:46 +0000)]
Undid my yesterday patch which is not needed with an upcoming patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81549 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCleanup and test C++ default arguments. Improvements include:
Douglas Gregor [Fri, 11 Sep 2009 18:44:32 +0000 (18:44 +0000)]
Cleanup and test C++ default arguments. Improvements include:

  - Diagnose attempts to add default arguments to templates (or member
    functions of templates) after the initial declaration (DR217).
  - Improve diagnostics when a default argument is redefined. Now, the
    note will always point at the place where the default argument was
    previously defined, rather than pointing to the most recent
    declaration of the function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81548 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoJust ignore friend templates for now so we won't crash.
Anders Carlsson [Fri, 11 Sep 2009 17:54:14 +0000 (17:54 +0000)]
Just ignore friend templates for now so we won't crash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81536 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFixes a regression in objc GC layout bitmap involving
Fariborz Jahanian [Fri, 11 Sep 2009 17:39:05 +0000 (17:39 +0000)]
Fixes a regression in objc GC layout bitmap involving
block pointer ivars.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81535 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate CMakeLists.
Benjamin Kramer [Fri, 11 Sep 2009 11:28:30 +0000 (11:28 +0000)]
Update CMakeLists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81519 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTrack a class template specialization's point of instantiation separately
John McCall [Fri, 11 Sep 2009 07:25:08 +0000 (07:25 +0000)]
Track a class template specialization's point of instantiation separately
from its location.  Initialize appropriately.

When implicitly creating a declaration of a class template specialization
after encountering the first reference to it, use the pattern class's
location instead of the location of the first reference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81515 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen stringizing a NamedDecl for a diagnostic, treat the template
John McCall [Fri, 11 Sep 2009 06:45:03 +0000 (06:45 +0000)]
When stringizing a NamedDecl for a diagnostic, treat the template
specialization types differently.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81512 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate prototype.
Daniel Dunbar [Fri, 11 Sep 2009 06:34:14 +0000 (06:34 +0000)]
Update prototype.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81510 91177308-0d34-0410-b5e6-96231b3b80d8