aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-10-14Testing and some minor fixes for explicit template instantiation.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84129 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Shift the vcall slots for non-virtual bases of a virtual base, up intoMike Stump
the virtual base so they can be reused properly. Don't reuse vcall slots across a virtual boundary. WIP. I have a testcase, but there are still things that need to be fixed before the testcase can go in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84120 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14When mapping from an injected-class-name to its correspondingDouglas Gregor
template, make sure to get the template that corresponds to *this* declaration of the class template or specialization, rather than the canonical specialization. Fixes PR5187. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Add support for having different c++ search dirs with -m32 and -m64. So farRafael Espindola
this is only used in darwin10, 64 bit ubuntu 9.10 and 64 bit openSUSE 11.1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84115 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Copy metadata associated with CIDevang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84114 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Implement support for overloaded operator uses that result to a callDouglas Gregor
to a member operator template. We missed updating this call site when adding support for function templates; bug exposed by a test for PR5072. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84111 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14There is now only one version of eh.selector and eh.typeid.for.Duncan Sands
Fix the clang build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84107 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Have the exception specification checkers take partial diagnostics. Use this ↵Sebastian Redl
to merge two diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84105 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Few targets like PIC16 mangle the names of global variables, so retrieve the ↵Sanjiv Gupta
name from Var itself rather than the decl for DebugInfo metadata. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84102 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Use CanQualType in the exception specification verification type sets.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84101 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Teach Lexer::MeasureTokenLength to be able to measure theChris Lattner
length of comment tokens. Patch by Abramo Bagnara! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84100 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Use partial diagnostics properly in call to RequireCompleteType. Among other ↵Sebastian Redl
things, this means we get a note on the declaration of the incomplete type when it is used in an exception specification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84099 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Do exception spec compatibility tests for member pointers, too.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84098 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Now StoreManager::CastRegion() takes a MemRegion, returns a MemRegion.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84081 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14fix some cfstring related issues: Chris Lattner
1) -fwritable-string does affect the non-utf16 version of cfstrings just not the utf16 ones. 2) utf16 strings should always be marked constant, as the __TEXT segment is readonly. 3) The name of the global doesn't matter, remove it from TargetInfo. 4) Trust the asmprinter to drop cstrings into the right section, like llvmgcc does now. This fixes rdar://7115750 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84077 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14unbreak test/CodeGen/builtins.c, reverting Devang's change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84075 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Remove dead code.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84073 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14* Remove unused GRState* parameterZhongxing Xu
* Make all Base value the last argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84071 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14Handle ambiguity of reference initialization.Fariborz Jahanian
Removes a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14retain/release checker: Recognize that calls toTed Kremenek
'CVPixelBufferCreateWithPlanarBytes()' and 'CVPixelBufferCreateWithBytes' (Core Video API) can indirectly release a pixel buffer object via a callback. This fixes <rdar://problem/7283567>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84064 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Remove some non-ASCII charactersDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Member function templates (and instantiations/specializations thereof)Douglas Gregor
are never copy constructors or copy assignment operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Improve diagnostics when the parser encounters a declarator with anDouglas Gregor
unknown type name, e.g., foo::bar x; when "bar" does not refer to a type in "foo". With this change, the parser now calls into the action to perform diagnostics and can try to recover by substituting in an appropriate type. For example, this allows us to easily diagnose some missing "typename" specifiers, which we now do: test/SemaCXX/unknown-type-name.cpp:29:1: error: missing 'typename' prior to dependent type name 'A<T>::type' A<T>::type A<T>::f() { return type(); } ^~~~~~~~~~ typename Fixes PR3990. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84053 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Fix for PR 5181.Edward O'Callaghan
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84051 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Check void type before using replaceAllUsesWith().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13The operator loc points to the operator, not the function decl.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13retain/release checker: retained objects passed to pthread_create (asTed Kremenek
the data argument) should not be tracked further until we support full IPA. (fixes <rdar://problem/7299394>) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84047 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Refine handling for non-virtual bases in return value adjustments forMike Stump
covariant thunks. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84046 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Check the return type of binary operators and the arrow operator.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84043 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Check the return type of operator[]() and fix a thinko that lead to a crash ↵Anders Carlsson
in SemaCXX/overloaded-operator.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13fix test/CodeGen/statements.c on 32-bit hosts.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13More return type checking.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84034 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Ensure we sign extend.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Diagnose invalid return types for unary operators.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84030 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Unify our diagnostic printing for errors of the form, "we didn't likeDouglas Gregor
what we found when we looked into <blah>", where <blah> is a DeclContext*. We can now format DeclContext*'s in nice ways, e.g., "namespace N", "the global namespace", "'class Foo'". This is part of PR3990, but we're not quite there yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84028 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Pass the right SourceLocation to ↵Anders Carlsson
Actions.ActOnOverloadedOperatorReferenceExpr and Actions.ActOnConversionOperatorReferenceExpr. Update incomplete-call.cpp test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84026 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Fixes pth.c on Windows.John Thompson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84007 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Don't assume that the LHS and RHS of a member pointer expression is a ↵Anders Carlsson
DeclRefExpr. Fixes PR5177. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83986 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Remove FIXME. We construct VBIndex very early, before any calls to ↵Mike Stump
OverrideMethod. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83981 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Diagnose attempts to add default function arguments to aDouglas Gregor
specialization. This completes C++ [temp.expl.spec]! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Remove extra white space line.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Do not check use_empty() before invoking replaceAllUsesWith().Devang Patel
Let replaceAllUsesWith() adjust VHs even though there are no uses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83978 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13-funit-at-a-time is the default however some current makefiles pass ↵Edward O'Callaghan
-fno-unit-at-a-time which is ignored by GCC, we should warn about this not error out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83976 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13When explicitly specializing a member that is a template, mark theDouglas Gregor
template as a specialization. For example, this occurs with: template<typename T> struct X { template<typename U> struct Inner { /* ... */ }; }; template<> template<typename T> struct X<int>::Inner { T member; }; We need to treat templates that are member specializations as special in two contexts: - When looking for a definition of a member template, we look through the instantiation chain until we hit the primary template *or a member specialization*. This allows us to distinguish between the primary "Inner" definition and the X<int>::Inner definition, above. - When computing all of the levels of template arguments needed to instantiate a member template, don't add template arguments from contexts outside of the instantiation of a member specialization, since the user has already manually substituted those arguments. Fix up the existing test for p18, which was actually wrong (but we didn't diagnose it because of our poor handling of member specializations of templates), and add a new test for member specializations of templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83974 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Improve the internal representation and semantic analysis of friendDouglas Gregor
function templates. This commit ensures that friend function templates are constructed as FunctionTemplateDecls rather than partial FunctionDecls (as they previously were). It then implements template instantiation for friend function templates, injecting the friend function template only when no previous declaration exists at the time of instantiation. Oh, and make sure that explicit specialization declarations are not friends. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83970 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Refine handling for return value conversions with respect to virtualMike Stump
offsets for covariant thunks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Teach sema and codegen about the difference between address of labels,Chris Lattner
which is a common idiom to improve PIC'ness of code using the addr of label extension. This implementation is a gross hack, but the only other alternative would be to teach evalutate about this horrid combination. While GCC allows things like "&&foo - &&bar + 1", people don't use this in practice. This implements PR5131. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13reimplement codegen for indirect goto with the following advantages:Chris Lattner
1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13number address-taken labels from 1. This allows 0 to be used as a sentinelChris Lattner
for a null pointer. In other words, "&&foo != NULL" will always work out to true. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83948 91177308-0d34-0410-b5e6-96231b3b80d8