summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Add test case for <rdar://problem/7257223>, and XFAIL this test until it passes.Ted Kremenek2009-10-141-0/+24
| | | | llvm-svn: 84070
* Handle ambiguity of reference initialization.Fariborz Jahanian2009-10-143-1/+40
| | | | | | Removes a FIXME. llvm-svn: 84068
* retain/release checker: Recognize that calls toTed Kremenek2009-10-142-3/+126
| | | | | | | | | | 'CVPixelBufferCreateWithPlanarBytes()' and 'CVPixelBufferCreateWithBytes' (Core Video API) can indirectly release a pixel buffer object via a callback. This fixes <rdar://problem/7283567>. llvm-svn: 84064
* Remove some non-ASCII charactersDouglas Gregor2009-10-131-2/+2
| | | | llvm-svn: 84058
* Member function templates (and instantiations/specializations thereof)Douglas Gregor2009-10-131-2/+10
| | | | | | are never copy constructors or copy assignment operators. llvm-svn: 84057
* Improve diagnostics when the parser encounters a declarator with anDouglas Gregor2009-10-1312-20/+141
| | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 84053
* Fix for PR 5181.Edward O'Callaghan2009-10-131-1/+4
| | | | llvm-svn: 84051
* Check void type before using replaceAllUsesWith().Devang Patel2009-10-131-1/+2
| | | | llvm-svn: 84050
* The operator loc points to the operator, not the function decl.Anders Carlsson2009-10-131-1/+1
| | | | llvm-svn: 84048
* retain/release checker: retained objects passed to pthread_create (asTed Kremenek2009-10-132-1/+38
| | | | | | | | the data argument) should not be tracked further until we support full IPA. (fixes <rdar://problem/7299394>) llvm-svn: 84047
* Refine handling for non-virtual bases in return value adjustments forMike Stump2009-10-132-14/+30
| | | | | | covariant thunks. WIP. llvm-svn: 84046
* Check the return type of binary operators and the arrow operator.Anders Carlsson2009-10-133-9/+26
| | | | llvm-svn: 84043
* Check the return type of operator[]() and fix a thinko that lead to a crash ↵Anders Carlsson2009-10-132-7/+16
| | | | | | in SemaCXX/overloaded-operator.cpp. llvm-svn: 84041
* fix test/CodeGen/statements.c on 32-bit hosts.Chris Lattner2009-10-132-1/+19
| | | | llvm-svn: 84039
* More return type checking.Anders Carlsson2009-10-133-8/+19
| | | | llvm-svn: 84034
* Ensure we sign extend.Mike Stump2009-10-131-2/+2
| | | | llvm-svn: 84031
* Diagnose invalid return types for unary operators.Anders Carlsson2009-10-132-7/+15
| | | | llvm-svn: 84030
* Unify our diagnostic printing for errors of the form, "we didn't likeDouglas Gregor2009-10-1314-127/+147
| | | | | | | | | | 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. llvm-svn: 84028
* Pass the right SourceLocation to ↵Anders Carlsson2009-10-132-3/+10
| | | | | | Actions.ActOnOverloadedOperatorReferenceExpr and Actions.ActOnConversionOperatorReferenceExpr. Update incomplete-call.cpp test. llvm-svn: 84026
* Give ourselves an A- on ASTs for explicit specializations, since theyDouglas Gregor2009-10-131-2/+2
| | | | | | aren't rich enough to reproduce the source accurately. llvm-svn: 84012
* Fixes pth.c on Windows.John Thompson2009-10-131-6/+5
| | | | llvm-svn: 84007
* Converted to use FileCheck.John Thompson2009-10-135-16/+26
| | | | llvm-svn: 84005
* Turn -Wparentheses on by default.John McCall2009-10-132-2/+2
| | | | llvm-svn: 83993
* Don't assume that the LHS and RHS of a member pointer expression is a ↵Anders Carlsson2009-10-132-5/+23
| | | | | | DeclRefExpr. Fixes PR5177. llvm-svn: 83986
* Remove FIXME. We construct VBIndex very early, before any calls to ↵Mike Stump2009-10-131-1/+0
| | | | | | OverrideMethod. llvm-svn: 83981
* Diagnose attempts to add default function arguments to aDouglas Gregor2009-10-134-5/+54
| | | | | | specialization. This completes C++ [temp.expl.spec]! llvm-svn: 83980
* Remove extra white space line.Devang Patel2009-10-131-1/+0
| | | | llvm-svn: 83979
* Do not check use_empty() before invoking replaceAllUsesWith().Devang Patel2009-10-131-2/+3
| | | | | | Let replaceAllUsesWith() adjust VHs even though there are no uses. llvm-svn: 83978
* -funit-at-a-time is the default however some current makefiles pass ↵Edward O'Callaghan2009-10-131-1/+1
| | | | | | -fno-unit-at-a-time which is ignored by GCC, we should warn about this not error out. llvm-svn: 83976
* When explicitly specializing a member that is a template, mark theDouglas Gregor2009-10-139-26/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 83974
* Improve the internal representation and semantic analysis of friendDouglas Gregor2009-10-137-34/+151
| | | | | | | | | | | | | | | 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. llvm-svn: 83970
* Refine handling for return value conversions with respect to virtualMike Stump2009-10-132-27/+114
| | | | | | offsets for covariant thunks. llvm-svn: 83965
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-1313-57/+33
| | | | llvm-svn: 83964
* Teach sema and codegen about the difference between address of labels,Chris Lattner2009-10-133-4/+36
| | | | | | | | | | 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. llvm-svn: 83957
* reimplement codegen for indirect goto with the following advantages:Chris Lattner2009-10-133-44/+91
| | | | | | | | | | | | | 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). llvm-svn: 83952
* merge an indirect goto test into statements, add anotherChris Lattner2009-10-132-4/+20
| | | | | | hairier (but nonsensical) example. llvm-svn: 83951
* Return the original state by default.Zhongxing Xu2009-10-131-1/+1
| | | | llvm-svn: 83949
* number address-taken labels from 1. This allows 0 to be used as a sentinelChris Lattner2009-10-131-1/+1
| | | | | | | for a null pointer. In other words, "&&foo != NULL" will always work out to true. llvm-svn: 83948
* Use the new Type::getInt8PtrTy method. This should probably be used in a lotChris Lattner2009-10-131-1/+1
| | | | | | more places in clang codegen now. llvm-svn: 83947
* test commitJohn Thompson2009-10-131-48/+47
| | | | llvm-svn: 83945
* add rdar # I accidentally lost.Chris Lattner2009-10-131-1/+1
| | | | llvm-svn: 83942
* merge two tests.Chris Lattner2009-10-132-19/+18
| | | | llvm-svn: 83941
* make the diagnostic in the 'unused result' warning more preciseChris Lattner2009-10-136-18/+48
| | | | | | about the reason, rdar://7186119. llvm-svn: 83940
* fix PR4938 by recognizing % as a modifier on outputs,Chris Lattner2009-10-132-0/+12
| | | | | | previously we only recognized it on inputs. llvm-svn: 83939
* Now we can call into another function with the CallInliner transfer function.Zhongxing Xu2009-10-131-1/+35
| | | | llvm-svn: 83936
* Add two utility methods.Zhongxing Xu2009-10-132-0/+11
| | | | llvm-svn: 83935
* Add an initial implementation of EnterStackFrame() to the StoreManager.Zhongxing Xu2009-10-133-0/+32
| | | | llvm-svn: 83934
* Disable tests that check debug info intrinsic. This does not work if debug ↵Devang Patel2009-10-122-0/+2
| | | | | | info intrinsics are not used to encode debug info. llvm-svn: 83929
* Enable "debug info attached to an instruction" mode.Devang Patel2009-10-121-0/+2
| | | | llvm-svn: 83928
* Minor CSS fixDouglas Gregor2009-10-121-0/+2
| | | | llvm-svn: 83924
OpenPOWER on IntegriCloud