summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* More tests for explicit template specializationDouglas Gregor2009-10-124-0/+35
| | | | llvm-svn: 83896
* Add test for last commitDouglas Gregor2009-10-121-0/+56
| | | | llvm-svn: 83893
* Diagnose the declaration of explicit specializations after an implicitDouglas Gregor2009-10-1211-42/+198
| | | | | | | instantiation has already been required. To do so, keep track of the point of instantiation for anything that can be instantiated. llvm-svn: 83890
* Handle built-in unary operators when reporting ambiguities.Fariborz Jahanian2009-10-124-14/+40
| | | | | | wip - To prune excessive reporting. llvm-svn: 83889
* Fix test.Anders Carlsson2009-10-121-0/+1
| | | | llvm-svn: 83888
* Even more devirtualization cleverness.Anders Carlsson2009-10-122-1/+21
| | | | llvm-svn: 83886
* Allow BumpVectorContext to conditionally own the underlying BumpPtrAllocator.Ted Kremenek2009-10-121-2/+17
| | | | llvm-svn: 83884
* More devirtualization improvements.Anders Carlsson2009-10-122-0/+14
| | | | llvm-svn: 83883
* Devirtualize calls on temporaries. A().f() for example.Anders Carlsson2009-10-122-0/+9
| | | | llvm-svn: 83882
* Factor out devirtualization checking into a separate function and make it ↵Anders Carlsson2009-10-123-8/+33
| | | | | | handle references correctly. llvm-svn: 83880
* Use CanQualType (instead of QualType) to store collection of visibleFariborz Jahanian2009-10-122-10/+12
| | | | | | canonical conversion types. llvm-svn: 83869
* If built-in operators could not be selected because of ambiguity inFariborz Jahanian2009-10-124-6/+38
| | | | | | | | | | | | | | | | | | user-defined type conversions, issue list of ambiguites in addition to the diagnostic. So, clang now issues the following: b.cpp:19:19: error: left hand operand to ->* must be a pointer to class compatible with the right hand operand, but is 'struct C1' int i = c1->*pmf; ~~^ b.cpp:19:19: note: because of ambiguity in conversion of 'struct C1' to 'struct E *' b.cpp:5:5: note: candidate function operator E*(); ^ b.cpp:11:5: note: candidate function operator E*(); ^ llvm-svn: 83862
* Don't install Makefiles nor tablegen input in include/.Axel Naumann2009-10-121-3/+5
| | | | | | Fix exclusion of .tmp, which in turn enables installation of $(PROJ_OBJ_ROOT)/tools/clang/include/*.inc. llvm-svn: 83855
* Typo in AddGnuCPlusPlusIncludePaths.Edward O'Callaghan2009-10-121-1/+1
| | | | llvm-svn: 83847
* If the base type of a member call is a record type we don't need to emit a ↵Anders Carlsson2009-10-112-6/+14
| | | | | | virtual call. llvm-svn: 83816
* Remove dead variable.Benjamin Kramer2009-10-111-1/+1
| | | | llvm-svn: 83808
* Add CGVtable.cpp to CMakeLists.Benjamin Kramer2009-10-111-0/+1
| | | | llvm-svn: 83800
* Move the vtable builder to CGVtable.cpp, general cleanup.Anders Carlsson2009-10-118-554/+614
| | | | llvm-svn: 83798
* Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of ↵Anders Carlsson2009-10-114-17/+17
| | | | | | QualTypes. llvm-svn: 83793
* CMake mingw build fixes.Benjamin Kramer2009-10-111-3/+7
| | | | | | | | - llvm's libs must be linked after clang's - libLLVMSystem depends on psapi on win32 (get_system_libs has it) - CIndex builds successfully on mingw now llvm-svn: 83773
* This ought to complete exception spec support. Man, am I glad.Sebastian Redl2009-10-111-3/+3
| | | | llvm-svn: 83767
* Types appearing more than once in a spec shouldn't matter.Sebastian Redl2009-10-112-5/+14
| | | | llvm-svn: 83766
* Test exception spec compatibility on return type and parameters.Sebastian Redl2009-10-118-230/+324
| | | | | | | Along the way, use RequireCompleteType when testing exception spec types. Separate all the ugly spec stuff into its own file. llvm-svn: 83764
* Introduces a new BindingVal which combines direct andZhongxing Xu2009-10-111-190/+165
| | | | | | | | default binding for regions. This allows us to simply a lot of code. A further simplification could be done is that many methods of regionstore can only work on Store instead of GRState. llvm-svn: 83762
* Move our (non-existing) RTTI emission code into CGRtti.cpp. No functionality ↵Anders Carlsson2009-10-104-32/+53
| | | | | | change. llvm-svn: 83732
* Generate weak read barriers when reading a weak __blockFariborz Jahanian2009-10-102-1/+31
| | | | | | variable inside the block. llvm-svn: 83729
* Implement the core checking for compatible exception specifications in ↵Sebastian Redl2009-10-106-11/+64
| | | | | | | | | assignment and initialization. The exception specification of the assignee must be the same or a subset of the target. In addition, exception specifications on arguments and return types must be equivalent, but this is not implemented yet. This currently produces two diagnostics for every invalid assignment/initialization, due to the diagnostic produced outside PerformImplicitConversion, e.g. in CheckSingleInitializer. I don't know how to suppress this; in any case I think it is the wrong place for a diagnostic, since there are other diagnostics produced inside the function. So I'm leaving it as it is for the moment. llvm-svn: 83710
* Qualified lookup through using declarations. Diagnose a new type of ambiguity.John McCall2009-10-1010-50/+465
| | | | | | | Split the various ambiguous result enumerators into their own enum. Tests for most of C++ [namespace.qual]. llvm-svn: 83700
* Check that the return type is complete when calling a member function.Anders Carlsson2009-10-102-1/+10
| | | | llvm-svn: 83694
* Add another test.Anders Carlsson2009-10-091-0/+16
| | | | llvm-svn: 83693
* Add CheckCallReturnType and start using it for regular call expressions. ↵Anders Carlsson2009-10-099-18/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | This will improve error messages. For struct B; B f(); void g() { f(); } We now get t.cpp:6:3: error: calling 'f' with incomplete return type 'struct B' f(); ^~~ t.cpp:3:3: note: 'f' declared here B f(); ^ t.cpp:1:8: note: forward declaration of 'struct B' struct B; ^ llvm-svn: 83692
* Dead Code EliminationDouglas Gregor2009-10-092-23/+0
| | | | llvm-svn: 83686
* Add some FIXMEsDouglas Gregor2009-10-091-0/+2
| | | | llvm-svn: 83685
* Experimental, ultra-hacking Emacs minor mode for Clang-based code completion.Douglas Gregor2009-10-091-0/+257
| | | | llvm-svn: 83681
* Minor tweaks for code-completion:Douglas Gregor2009-10-092-4/+15
| | | | | | | | | | | - Filter out unnamed declarations - Filter out declarations whose names are reserved for the implementation (e.g., __bar, _Foo) - Place OVERLOAD: or COMPLETION: at the beginning of each code-completion result, so we can easily separate them from other compilation results. llvm-svn: 83680
* Update Xcode project.Anders Carlsson2009-10-091-6/+0
| | | | llvm-svn: 83679
* Revert 83567.Devang Patel2009-10-091-6/+3
| | | | llvm-svn: 83676
* Refactor the LookupResult API to simplify most common operations. Require ↵John McCall2009-10-0916-911/+527
| | | | | | | | | users to pass a LookupResult reference to lookup routines. Call out uses which assume a single result. llvm-svn: 83674
* When declaring a friend class template, we may end up finding anDouglas Gregor2009-10-092-0/+32
| | | | | | | | injected-class-name (e.g., when we're referring to other specializations of the current class template). Make sure that we see the template rather than the injected-class-name. Fixes PR4768. llvm-svn: 83672
* Efficiency refinements.Mike Stump2009-10-092-6/+6
| | | | llvm-svn: 83666
* Do not install CMakeLists.txt (nor any other txt files) into include/ ↵Axel Naumann2009-10-091-1/+1
| | | | | | subdirectories llvm-svn: 83665
* Push all the way out to 80.Mike Stump2009-10-091-1/+1
| | | | llvm-svn: 83664
* Passing const Triple& is sufficient for AddDefaultSystemIncludePaths()Axel Naumann2009-10-092-2/+3
| | | | llvm-svn: 83663
* Allow customization for the producer information in the debug output.Mike Stump2009-10-092-1/+8
| | | | llvm-svn: 83659
* Allow customization for the version line.Mike Stump2009-10-092-0/+6
| | | | llvm-svn: 83652
* Produce good looking diagnostics on ambiguous built-in operators.Fariborz Jahanian2009-10-093-9/+31
| | | | | | | | | | | | | | Now we produce things like: bug1.cpp:21:11: error: use of overloaded operator '->*' is ambiguous int i = c->*pmf; // expected-error {{use of overloaded operator '->*' is ambiguous}} \ ~^ ~~~ bug1.cpp:21:11: note: built-in candidate operator ->* ('struct A volatile *', 'int const struct A::*') bug1.cpp:21:11: note: built-in candidate operator ->* ('struct A volatile *', 'int restrict struct A::*') ... Still need to look at an issue (indicated as FIXME in the test case). llvm-svn: 83650
* Use the new API for applying the qualifiers on built-in '->*' Fariborz Jahanian2009-10-091-5/+3
| | | | | | operator's types. llvm-svn: 83648
* Remove unused code.Zhongxing Xu2009-10-091-7/+0
| | | | llvm-svn: 83612
* Make the behavior explicit by not using the method call.Zhongxing Xu2009-10-091-2/+2
| | | | llvm-svn: 83611
* Remove unused code.Zhongxing Xu2009-10-091-7/+0
| | | | llvm-svn: 83610
OpenPOWER on IntegriCloud