re PR c++/52035 (internal compiler error: tree code ‘template_type_parm’ is not supported in LTO streams)
PR c++/52035 * pt.c (tsubst): Strip uninstantiated typedef. From-SVN: r184000
This commit is contained in:
parent
75685ef74d
commit
84d594c648
@ -1,3 +1,8 @@
|
||||
2012-02-07 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/52035
|
||||
* pt.c (tsubst): Strip uninstantiated typedef.
|
||||
|
||||
2012-02-06 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/52088
|
||||
|
@ -11178,7 +11178,9 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
|
||||
complain | tf_ignore_bad_quals);
|
||||
return r;
|
||||
}
|
||||
/* Else we must be instantiating the typedef, so fall through. */
|
||||
else
|
||||
/* We don't have an instantiation yet, so drop the typedef. */
|
||||
t = DECL_ORIGINAL_TYPE (decl);
|
||||
}
|
||||
|
||||
if (type
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-02-07 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/52035
|
||||
* g++.dg/lto/pr52035_0.C: New.
|
||||
|
||||
2012-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
* gfortran.dg/guality/pr41558.f90: Use lp64 instead of hppa*64*-*-*.
|
||||
|
@ -24,9 +24,9 @@ $ g++ -o <executable> a_0.o a_1.o a_2.o
|
||||
Tests that do not need more than one file are a special case
|
||||
where there is a single file named 'foo_0.C'.
|
||||
|
||||
The only supported dg-lto-do option are 'compile', 'run' and 'link'.
|
||||
The only supported dg-lto-do option are 'assemble', 'run' and 'link'.
|
||||
Additionally, these can only be used in the main file. If
|
||||
'compile' is used, only the individual object files are
|
||||
'assemble' is used, only the individual object files are
|
||||
generated. If 'link' is used, the final executable is generated
|
||||
but not executed (in this case, function main() needs to exist
|
||||
but it does not need to do anything). If 'run' is used, the
|
||||
|
14
gcc/testsuite/g++.dg/lto/pr52035_0.C
Normal file
14
gcc/testsuite/g++.dg/lto/pr52035_0.C
Normal file
@ -0,0 +1,14 @@
|
||||
// PR c++/52035
|
||||
// { dg-lto-do assemble }
|
||||
|
||||
template <typename T> struct QVector {
|
||||
typedef T* iterator;
|
||||
static void insert(int n);
|
||||
typedef int size_type;
|
||||
};
|
||||
template <typename T> void QVector<T>::insert(size_type n) {}
|
||||
void error()
|
||||
{
|
||||
int n;
|
||||
QVector<int>::insert(n);
|
||||
}
|
Loading…
Reference in New Issue
Block a user