summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/instantiate-complete.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove the -cxx-abi command-line flag.Hans Wennborg2014-01-141-2/+2
| | | | | | | | | | | | | | | This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples, Itanium otherwise. It's no longer possible to do weird combinations. To be able to run a test with a specific ABI without constraining it to a specific triple, new substitutions are added to lit: %itanium_abi_triple and %ms_abi_triple can be used to get the current target triple adjusted to the desired ABI. For example, if the test suite is running with the i686-pc-win32 target, %itanium_abi_triple will expand to i686-pc-mingw32. Differential Revision: http://llvm-reviews.chandlerc.com/D2545 llvm-svn: 199250
* Update tests in preparation for using the MS ABI for Win32 targetsHans Wennborg2014-01-131-1/+9
| | | | | | | | | | In preparation for making the Win32 triple imply MS ABI mode, make all tests pass in this mode, or make them use the Itanium mode explicitly. Differential Revision: http://llvm-reviews.chandlerc.com/D2401 llvm-svn: 199130
* --lies.Richard Smith2012-02-101-2/+0
| | | | llvm-svn: 150240
* When we're type-checking the result of calling a conversion functionDouglas Gregor2010-11-131-0/+20
| | | | | | | | | | (while computing user conversion sequences), make sure that a result of class type is a complete class type. Had we gone through ActOnCallExpr, this would have happened when we built the CallExpr. Fixes PR8425. llvm-svn: 119005
* There is no reason for dereferencing a pointer-to-member to requireDouglas Gregor2010-10-131-3/+1
| | | | | | | | | that the class type into which the pointer points be complete, even though the standard requires it. GCC/EDG do not require a complete type here, so we're calling this a problem with the standard. Fixes PR8328. llvm-svn: 116429
* Require a complete type when performing the qualified lookup duringJohn McCall2010-05-271-0/+9
| | | | | | instantiation of a dependent elaborated type specifier. Fixes PR 7199. llvm-svn: 104822
* Reapply the reference-binding patch applied below, along with a fix toDouglas Gregor2010-05-071-0/+20
| | | | | | | | | | | | | | | | ensure that we complete the type when we need to look at constructors during reference binding. When determining whether the two types involved in reference binding are reference-compatible, reference-related, etc., do not complete the type of the reference itself because it is not necessary to determine well-formedness of the program. Complete the type that we are binding to, since that can affect whether we know about a derived-to-base conversion. Re-fixes PR7080. llvm-svn: 103283
* Revert r103220. It seems to be breaking self-hostDouglas Gregor2010-05-071-20/+0
| | | | llvm-svn: 103259
* When determining whether the two types involved in reference bindingDouglas Gregor2010-05-071-0/+20
| | | | | | | | | | | | are reference-compatible, reference-related, etc., do not complete the type of the reference itself because it is not necessary to determine well-formedness of the program. Complete the type that we are binding to, since that can affect whether we know about a derived-to-base conversion. Fixes PR7080. llvm-svn: 103220
* When we attempt to create a temporary object of class type, be sureDouglas Gregor2010-04-241-0/+15
| | | | | | | | | | that the type we're copying is complete. Boost.Regex now builds, although it's failing its regression tests with our favorite "Sema doesn't consider destructor as used." assertion. llvm-svn: 102271
* When a member pointer is dereferenced, the class it points into must be ↵Sebastian Redl2010-04-101-2/+3
| | | | | | complete. Enforce this. llvm-svn: 100925
* When pretty-printing tag types, only print the tag if we're in C (andJohn McCall2010-03-101-5/+5
| | | | | | | | | | therefore not creating ElaboratedTypes, which are still pretty-printed with the written tag). Most of these testcase changes were done by script, so don't feel too sorry for my fingers. llvm-svn: 98149
* When looking for the instantiated declaration that corresponds to aDouglas Gregor2010-03-011-0/+17
| | | | | | | given declaration in a template, make sure that the context we're searching through is complete. Fixes PR6376. llvm-svn: 97444
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-1/+1
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). llvm-svn: 91446
* Fixed two places where we needed to force completion of a typeDouglas Gregor2009-11-051-0/+21
| | | | | | | | | | | | (without complaining if it fails) to get proper semantics: reference binding with a derived-to-base conversion and the enumeration of constructors for user-defined conversions. There are probably more cases to fix, but my prior attempt at statically ensuring that complete-type checking always happens failed. Perhaps I'll try again. With this change, Clang can parse include/llvm/*.h! llvm-svn: 86129
* Implement explicit instantiations of member classes of class templates, e.g.,Douglas Gregor2009-05-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | template<typename T> struct X { struct Inner; }; template struct X<int>::Inner; This change is larger than it looks because it also fixes some a problem with nested-name-specifiers and tags. We weren't requiring the DeclContext associated with the scope specifier of a tag to be complete. Therefore, when looking for something like "struct X<int>::Inner", we weren't instantiating X<int>. This, naturally, uncovered a problem with member pointers, where we were requiring the left-hand side of a member pointer access expression (e.g., x->*) to be a complete type. However, this is wrong: the semantics of this expression does not require a complete type (EDG agrees). Stuart vouched for me. Blame him. llvm-svn: 71756
* Make sure to use RequireCompleteType rather than testing forDouglas Gregor2009-03-241-0/+47
incomplete types. RequireCompleteType is needed when the type may be completed by instantiating a template. llvm-svn: 67643
OpenPOWER on IntegriCloud