re PR c++/48749 (internal compiler error: tree check: expected field_decl)
PR c++/48749 * class.c (resolves_to_fixed_type_p): Don't look closely in templates. From-SVN: r173412
This commit is contained in:
parent
adad100716
commit
4d3baecc5c
@ -1,3 +1,9 @@
|
||||
2011-05-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/48749
|
||||
* class.c (resolves_to_fixed_type_p): Don't look closely
|
||||
in templates.
|
||||
|
||||
2011-05-03 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/28501
|
||||
|
@ -5980,7 +5980,17 @@ resolves_to_fixed_type_p (tree instance, int* nonnull)
|
||||
{
|
||||
tree t = TREE_TYPE (instance);
|
||||
int cdtorp = 0;
|
||||
tree fixed = fixed_type_or_null (instance, nonnull, &cdtorp);
|
||||
tree fixed;
|
||||
|
||||
if (processing_template_decl)
|
||||
{
|
||||
/* In a template we only care about the type of the result. */
|
||||
if (nonnull)
|
||||
*nonnull = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
fixed = fixed_type_or_null (instance, nonnull, &cdtorp);
|
||||
if (fixed == NULL_TREE)
|
||||
return 0;
|
||||
if (POINTER_TYPE_P (t))
|
||||
|
@ -1,3 +1,7 @@
|
||||
2011-05-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* g++.dg/conversion/base1.C: New.
|
||||
|
||||
2011-05-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libgfortran/48787
|
||||
|
20
gcc/testsuite/g++.dg/conversion/base1.C
Normal file
20
gcc/testsuite/g++.dg/conversion/base1.C
Normal file
@ -0,0 +1,20 @@
|
||||
// PR c++/48749
|
||||
|
||||
struct Tuple3
|
||||
{
|
||||
float x;
|
||||
};
|
||||
|
||||
struct Pos: virtual Tuple3 { };
|
||||
|
||||
struct TexCoords
|
||||
{
|
||||
Pos pos;
|
||||
};
|
||||
|
||||
template <class T>
|
||||
void eval (const TexCoords &coords)
|
||||
{
|
||||
const Pos &pos = coords.pos;
|
||||
pos.x;
|
||||
}
|
Loading…
Reference in New Issue
Block a user