summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/member-template-access-expr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Improve some of the conversion warnings to fire on conversion to bool.David Blaikie2012-05-151-1/+1
| | | | | | | | | | | Moves the bool bail-out down a little in SemaChecking - so now -Wnull-conversion and -Wliteral-conversion can fire when the target type is bool. Also improve the wording/details in the -Wliteral-conversion warning to match the -Wconstant-conversion. llvm-svn: 156826
* Enable warn_impcast_literal_float_to_integer by default.David Blaikie2012-04-051-1/+1
| | | | | | | | | | | | | | | | | This diagnostic seems to be production ready, it's just an oversight that it wasn't turned on by default. The test changes are a bit of a mixed bag. Some tests that seemed like they clearly didn't need to use this behavior have been modified not to use it. Others that I couldn't be sure about, I added the necessary expected-warnings to. It's possible the diagnostic message could be improved to make it clearer that this warning can be suppressed by using a value that won't lose precision when converted to the target type (but can still be a floating point literal, such as "bool b = 1.0;"). llvm-svn: 154068
* When performing template name lookup for a dependent member accessDouglas Gregor2010-07-161-0/+19
| | | | | | | | | expression such as the "foo" in "this->blah.foo<1, 2>", and we can't look into the type of "this->blah" (e.g., because it is dependent), look into the local scope of a template of the same name. Fixes <rdar://problem/8198511>. llvm-svn: 108531
* When determining whether the type is the current instantiation, stripDouglas Gregor2010-01-151-0/+20
| | | | | | qualifiers. Fixes PR6021. llvm-svn: 93513
* 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
* When starting a C++ member access expression, make sure to compute theDouglas Gregor2009-11-041-0/+10
| | | | | | | | | type of the object even when it is dependent. Specifically, this makes sure that we get the right type for "this->", which is important when performing name lookup into this scope to determine whether an identifier or operator-function-id is a template name. llvm-svn: 86060
* Implement "incremental" template instantiation for non-type templateDouglas Gregor2009-10-311-0/+18
| | | | | | | | | | | | | | | parameters and template type parameters, which occurs when substituting into the declarations of member templates inside class templates. This eliminates errors about our inability to "reduce non-type template parameter depth", fixing PR5311. Also fixes a bug when instantiating a template type parameter declaration in a member template, where we weren't properly reducing the template parameter's depth. LLVM's StringSwitch header now parses. llvm-svn: 85669
* Fix overload resolution when calling a member template or taking theDouglas Gregor2009-10-241-1/+26
| | | | | | | address of a member template when explicit template arguments are provided. llvm-svn: 84991
* Handle substitutions into the "first qualifier in scope" of aDouglas Gregor2009-10-201-2/+1
| | | | | | | qualified member access expression (e.g., t->U::member) when that first qualifier refers to a template parameters. llvm-svn: 84612
* Parse a simple-template-id following a '~' when calling a destructor, e.g.,Douglas Gregor2009-10-191-0/+23
| | | | | | | | t->~T<A0, A1>() Fixes PR5213. llvm-svn: 84545
* Initial stab at implement dependent member references to memberDouglas Gregor2009-09-091-0/+30
templates, e.g., x.template get<T> We can now parse these, represent them within an UnresolvedMemberExpr expression, then instantiate that expression node in simple cases. This allows us to stumble through parsing LLVM's Casting.h. llvm-svn: 81300
OpenPOWER on IntegriCloud