summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/default-expr-arguments.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Ensure that we have completed a type before attempting initializationDouglas Gregor2010-04-261-0/+18
| | | | | | on that type. Fixes several problems in Boost.Interprocess. llvm-svn: 102339
* Whenever we complain about a failed initialization of a function orDouglas Gregor2010-04-221-4/+8
| | | | | | | | | | | | | | | | | method parameter, provide a note pointing at the parameter itself so the user does not have to manually look for the function/method being called and match up parameters to arguments. For example, we now get: t.c:4:5: warning: incompatible pointer types passing 'long *' to parameter of type 'int *' [-pedantic] f(long_ptr); ^~~~~~~~ t.c:1:13: note: passing argument to parameter 'x' here void f(int *x); ^ llvm-svn: 102038
* 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
* Default function arguments for function template specializationsDouglas Gregor2010-02-051-0/+7
| | | | | | | always come from the primary template, so gather the instantiation template arguments from the primary template. llvm-svn: 95380
* Improve the reporting of non-viable overload candidates by noting the reasonJohn McCall2010-01-131-1/+1
| | | | | | | | why the candidate is non-viable. There's a lot we can do to improve this, but it's a good start. Further improvements should probably be integrated with the bad-initialization reporting routines. llvm-svn: 93277
* Improve the diagnostics used to report implicitly-generated class membersJohn McCall2010-01-061-1/+1
| | | | | | | | | as parts of overload sets. Also, refer to constructors as 'constructors' rather than functions. Adjust a lot of tests. llvm-svn: 92832
* When we see a CXXDefaultArgExpr during template instantiation, rebuildDouglas Gregor2009-12-231-3/+14
| | | | | | | | the default argument so that we're sure to mark any referenced declarations. This gets us another little step closer to fixing PR5810. llvm-svn: 92078
* When using a default function argument for a function template (orDouglas Gregor2009-12-231-1/+23
| | | | | | | | | | | | | | | | | member function thereof), perform the template instantiation each time the default argument is needed. This ensures that (1) We get different CXXTemporary objects for each instantiation, and (2) Any other instantiations or definitions triggered by the instantiation of the default argument expression are guaranteed to happen; previously, they might have been suppressed, e.g., because they happened in an unevaluated context. This fixes the majority of PR5810. However, it does not address the problem where we may have multiple uses of the same CXXTemporary within an expression when the temporary came from a non-instantiated default argument expression. llvm-svn: 92015
* Switch default arguments over to InitializationSequence.Eli Friedman2009-12-221-1/+1
| | | | llvm-svn: 91883
* Switch more of Sema::CheckInitializerTypes over toDouglas Gregor2009-12-191-4/+4
| | | | | | | | | | InitializationSequence. Specially, switch initialization of a C++ class type (either copy- or direct-initialization). Also, make sure that we create an elidable copy-construction when performing copy initialization of a C++ class variable. Fixes PR5826. llvm-svn: 91750
* 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
* Make sure that we instantiate default function arguments for anDouglas Gregor2009-11-091-2/+15
| | | | | | overloaded operator(). llvm-svn: 86581
* Special-case default argument expression in instantiation. This should fix ↵Sebastian Redl2009-11-081-0/+23
| | | | | | PR4301. Doug, please double-check my assumptions. Read the PR for more details. llvm-svn: 86465
* Make sure to call CompleteConstructorCall for bases and members that are ↵Anders Carlsson2009-10-291-0/+24
| | | | | | initialized implicitly in constructors so that default arguments etc are set correctly. Fixes PR5283. llvm-svn: 85510
* Merge uninstantiated default arguments more carefully, and try not toDouglas Gregor2009-09-171-0/+6
| | | | | | | complain about specializations of member functions that are not definitions. Fixes PR4995. llvm-svn: 82159
* Teach Sema::FindInstantiatedDecl to find instantiated RecordDecls evenDouglas Gregor2009-09-161-0/+10
| | | | | | | | | | when we are not instantiating the corresponding "current instantiation." This happens, e.g., when we are instantiating a declaration reference that refers into the "current instantiation" but occurs in a default function argument. The libstdc++ vector default constructor now instantiates properly. llvm-svn: 82069
* Cleanup and test C++ default arguments. Improvements include:Douglas Gregor2009-09-111-0/+21
| | | | | | | | | | | - 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. llvm-svn: 81548
* Reapply 81096, now with a fix. Spot the bug:Anders Carlsson2009-09-061-1/+4
| | | | | | | | | for (unsigned i = numargs; i < NumArgs; ++i) Args[0] = 0; ;) llvm-svn: 81123
* Revert "Initialize default CXXConstructExpr arguments to 0. Fixes a crash whenDaniel Dunbar2009-09-061-4/+1
| | | | | | | destroying the CXXConstructExpr.", this is causing test failures across the board. llvm-svn: 81100
* Initialize default CXXConstructExpr arguments to 0. Fixes a crash when ↵Anders Carlsson2009-09-051-1/+4
| | | | | | destroying the CXXConstructExpr. llvm-svn: 81096
* Report errors for member functions correctly.Anders Carlsson2009-09-051-0/+7
| | | | llvm-svn: 81063
* Use a separate diagnostic for default function argument expressions.Anders Carlsson2009-09-051-5/+5
| | | | llvm-svn: 81062
* Add a little more testing for default arguments of constructors in a class ↵Douglas Gregor2009-08-251-0/+3
| | | | | | template llvm-svn: 79989
* If a parameter has a default argument expression, make sure to instantiate ↵Anders Carlsson2009-08-251-0/+8
| | | | | | the parameter type before checking that the expression is a valid initializer. llvm-svn: 79986
* Improved support for default arguments in constructors for class templates.Anders Carlsson2009-08-251-0/+8
| | | | llvm-svn: 79984
* Basic support for default argument expressions for function templates.Anders Carlsson2009-08-251-0/+20
llvm-svn: 79972
OpenPOWER on IntegriCloud