PR c++/92859 - ADL and bit-field.
We also need unlowered_expr_type when considering associated types for ADL. * name-lookup.c: Use unlowered_expr_type. From-SVN: r279229
This commit is contained in:
parent
3e7a892cc5
commit
7c0a61870e
@ -1,5 +1,8 @@
|
||||
2019-12-11 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/92859 - ADL and bit-field.
|
||||
* name-lookup.c: Use unlowered_expr_type.
|
||||
|
||||
PR c++/92446 - deduction of class NTTP.
|
||||
* pt.c (deducible_expression): Look through VIEW_CONVERT_EXPR.
|
||||
|
||||
|
@ -908,7 +908,7 @@ name_lookup::adl_expr (tree expr)
|
||||
|
||||
if (TREE_TYPE (expr) != unknown_type_node)
|
||||
{
|
||||
adl_type (TREE_TYPE (expr));
|
||||
adl_type (unlowered_expr_type (expr));
|
||||
return;
|
||||
}
|
||||
|
||||
|
18
gcc/testsuite/g++.dg/overload/bit-field1.C
Normal file
18
gcc/testsuite/g++.dg/overload/bit-field1.C
Normal file
@ -0,0 +1,18 @@
|
||||
// PR c++/92859
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
void f(int) = delete;
|
||||
|
||||
struct ES {
|
||||
enum E { v };
|
||||
friend void f(E) { }
|
||||
};
|
||||
|
||||
struct S {
|
||||
ES::E e : 1;
|
||||
};
|
||||
|
||||
int main() {
|
||||
S s{};
|
||||
f (s.e);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user