static double& g(double); // expected-note{{candidate function}}
void h(int);
+
+ void test_member() {
+ float& f1 = f(0);
+ float& f2 = g(0);
+ double& d1 = g(0.0);
+ }
+
+ void test_member_const() const {
+ int &i1 = f(0);
+ int &i2 = g(0);
+ double& d1 = g(0.0);
+ }
+
+ static void test_member_static() {
+ double& d1 = g(0.0);
+ g(0); // expected-error{{call to 'g' is ambiguous; candidates are:}}
+ }
};
void test(X x, const X xc, X* xp, const X* xcp, volatile X xv, volatile X* xvp) {
<td> 4.3 [conv.func]</td>\r
<td class="complete" align="center">✓</td>\r
<td class="complete" align="center">✓</td>\r
- <td class="medium" align="center"></td>\r
+ <td class="advanced" align="center"></td>\r
+ <td></td>\r
<td></td>\r
- <td>Missing conversions from overloaded functions to function pointers.</td>\r
</tr>\r
<tr>\r
<td> 4.4 [conv.qual]</td>\r
<td></td>\r
<td>template-ids are not supported, name lookup is not complete</td>\r
</tr>\r
-<tr><td> 5.2 [expr.post]</td><td></td><td></td><td></td><td></td><td>Note that overloading is not considered in this section</td></tr>\r
+<tr><td> 5.2 [expr.post]</td><td></td><td></td><td></td><td></td><td></td></tr>\r
<tr>\r
<td> 5.2.1 [expr.sub]</td>\r
<td class="complete" align="center">✓</td>\r
<td class="complete" align="center">✓</td>\r
<td class="medium" align="center"></td>\r
<td></td>\r
- <td>Member calls don't work</td>\r
+ <td>Argument-dependent lookup is unsupported</td>\r
</tr>\r
<tr>\r
<td> 5.2.3 [expr.type.conv]</td>\r
<tr>\r
<td> 5.2.5 [expr.ref]</td>\r
<td class="complete" align="center">✓</td>\r
- <td class="basic"></td>\r
- <td class="basic"></td>\r
+ <td class="medium"></td>\r
+ <td class="medium"></td>\r
<td></td>\r
- <td>Only fields can be accessed</td>\r
+ <td>Cannot look up operator names, qualified-ids, or names in base classes</td>\r
</tr>\r
<tr>\r
<td> 5.2.6 [expr.post.incr]</td>\r