https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100463
Bug ID: 100463 Summary: many errors using GTY and hash_map Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- Trying to use a simple hash_map specialization with GTY is a horrible experience in debugging obscure template errors. For example, in the trivial patch below I'd like to define a hash_map from int to int in a file that already uses a GTY hash_map. It seems that it should be straightforward but: diff --git a/gcc/except.c b/gcc/except.c index a7902bbd555..1671847d00e 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -149,6 +149,10 @@ static GTY(()) int call_site_base; static GTY(()) hash_map<tree_hash, tree> *type_to_runtime_map; +typedef int_hash <int, 0, INT_MAX> test_int_hash_t; +typedef hash_map<test_int_hash_t, int> test_int_hash_map_t; +static GTY(()) test_int_hash_map_t *test_int_hash_map; + static GTY(()) tree setjmp_fn; /* Describe the SjLj_Function_Context structure. */ ...the patch leads to the following errors: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h: In function ‘void gt_ggc_mx(int_hash<int, 0, 2147483647>&)’: ./gt-except.h:62:21: error: no matching function for call to ‘gt_ggc_mx(int_hash<int, 0, 2147483647>*)’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:454, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/wide-int.h:3329:1: note: candidate: ‘template<class T> void gt_ggc_mx(generic_wide_int<storage>*)’ gt_ggc_mx (generic_wide_int <T> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/wide-int.h:3329:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘generic_wide_int<storage>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:454, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/wide-int.h:3347:1: note: candidate: ‘template<int N> void gt_ggc_mx(trailing_wide_ints<N>*)’ gt_ggc_mx (trailing_wide_ints <N> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/wide-int.h:3347:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘trailing_wide_ints<N>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:469, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/poly-int.h:2708:1: note: candidate: ‘template<unsigned int N, class C> void gt_ggc_mx(poly_int_pod<N, C>*)’ gt_ggc_mx (poly_int_pod<N, C> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/poly-int.h:2708:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘poly_int_pod<N, C>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:472, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/machmode.h:1190:1: note: candidate: ‘template<class T> void gt_ggc_mx(pod_mode<T>*)’ gt_ggc_mx (pod_mode<T> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/machmode.h:1190:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘pod_mode<T>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:247, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/ggc.h:325:1: note: candidate: ‘void gt_ggc_mx(const char*)’ gt_ggc_mx (const char *s) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/ggc.h:325:1: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘const char*’ /ssd/src/gcc/trunk/gcc/ggc.h:336:1: note: candidate: ‘void gt_ggc_mx(int)’ <near match> gt_ggc_mx (int) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/ggc.h:336:1: note: conversion of argument 1 would be ill-formed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:14: error: invalid conversion from ‘int_hash<int, 0, 2147483647>*’ to ‘int’ [-fpermissive] gt_ggc_mx (&((*x))); ^~~~~~~ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:248, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/vec.h:1349:1: note: candidate: ‘template<class T> void gt_ggc_mx(vec<T, va_gc>*)’ gt_ggc_mx (vec<T, va_gc> *v) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/vec.h:1349:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘vec<T, va_gc>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:248, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/vec.h:1358:1: note: candidate: ‘template<class T> void gt_ggc_mx(vec<T, va_gc_atomic, vl_embed>*)’ gt_ggc_mx (vec<T, va_gc_atomic, vl_embed> *v ATTRIBUTE_UNUSED) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/vec.h:1358:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘vec<T, va_gc_atomic, vl_embed>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:595, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-map.h:305:1: note: candidate: ‘template<class K, class V, class H> void gt_ggc_mx(hash_map<K, V, H>*)’ gt_ggc_mx (hash_map<K, V, H> *h) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-map.h:305:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_map<K, V, H>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-table.h:1148:1: note: candidate: ‘template<class E> void gt_ggc_mx(hash_table<E>*)’ gt_ggc_mx (hash_table<E> *h) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-table.h:1148:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_table<E>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:481, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-set.h:193:1: note: candidate: ‘template<class K, class H> void gt_ggc_mx(hash_set<K, false, H>*)’ gt_ggc_mx (hash_set<K, false, H> *h) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-set.h:193:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:62:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_set<K, false, H>’ gt_ggc_mx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/except.c:117: /ssd/src/gcc/trunk/gcc/rtl.h:4583:13: note: candidate: ‘void gt_ggc_mx(rtx_def*&)’ extern void gt_ggc_mx (rtx &); ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/rtl.h:4583:13: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘rtx_def*&’ In file included from /ssd/src/gcc/trunk/gcc/except.c:118: /ssd/src/gcc/trunk/gcc/tree.h:6282:13: note: candidate: ‘void gt_ggc_mx(tree_node*&)’ extern void gt_ggc_mx (tree &); ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/tree.h:6282:13: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘tree_node*&’ In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:43:1: note: candidate: ‘void gt_ggc_mx(tree_hash&)’ gt_ggc_mx (struct tree_hash& x_r ATTRIBUTE_UNUSED) ^~~~~~~~~ ./gt-except.h:43:1: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘tree_hash&’ ./gt-except.h:59:1: note: candidate: ‘void gt_ggc_mx(int_hash<int, 0, 2147483647>&)’ gt_ggc_mx (int_hash<int,0,INT_MAX>& x_r ATTRIBUTE_UNUSED) ^~~~~~~~~ ./gt-except.h:59:1: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘int_hash<int, 0, 2147483647>&’ ./gt-except.h: In function ‘void gt_pch_nx(int_hash<int, 0, 2147483647>&)’: ./gt-except.h:105:21: error: no matching function for call to ‘gt_pch_nx(int_hash<int, 0, 2147483647>*)’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:454, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/wide-int.h:3335:1: note: candidate: ‘template<class T> void gt_pch_nx(generic_wide_int<storage>*)’ gt_pch_nx (generic_wide_int <T> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/wide-int.h:3335:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘generic_wide_int<storage>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:454, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/wide-int.h:3341:1: note: candidate: ‘template<class T> void gt_pch_nx(generic_wide_int<storage>*, void (*)(void*, void*), void*)’ gt_pch_nx (generic_wide_int <T> *, void (*) (void *, void *), void *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/wide-int.h:3341:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘generic_wide_int<storage>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:454, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/wide-int.h:3353:1: note: candidate: ‘template<int N> void gt_pch_nx(trailing_wide_ints<N>*)’ gt_pch_nx (trailing_wide_ints <N> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/wide-int.h:3353:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘trailing_wide_ints<N>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:454, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/wide-int.h:3359:1: note: candidate: ‘template<int N> void gt_pch_nx(trailing_wide_ints<N>*, void (*)(void*, void*), void*)’ gt_pch_nx (trailing_wide_ints <N> *, void (*) (void *, void *), void *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/wide-int.h:3359:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘trailing_wide_ints<N>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:469, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/poly-int.h:2714:1: note: candidate: ‘template<unsigned int N, class C> void gt_pch_nx(poly_int_pod<N, C>*)’ gt_pch_nx (poly_int_pod<N, C> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/poly-int.h:2714:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘poly_int_pod<N, C>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:469, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/poly-int.h:2720:1: note: candidate: ‘template<unsigned int N, class C> void gt_pch_nx(poly_int_pod<N, C>*, void (*)(void*, void*), void*)’ gt_pch_nx (poly_int_pod<N, C> *, void (*) (void *, void *), void *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/poly-int.h:2720:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘poly_int_pod<N, C>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:472, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/machmode.h:1196:1: note: candidate: ‘template<class T> void gt_pch_nx(pod_mode<T>*)’ gt_pch_nx (pod_mode<T> *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/machmode.h:1196:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘pod_mode<T>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:472, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/machmode.h:1202:1: note: candidate: ‘template<class T> void gt_pch_nx(pod_mode<T>*, void (*)(void*, void*), void*)’ gt_pch_nx (pod_mode<T> *, void (*) (void *, void *), void *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/machmode.h:1202:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘pod_mode<T>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:247, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/ggc.h:331:1: note: candidate: ‘void gt_pch_nx(const char*)’ gt_pch_nx (const char *) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/ggc.h:331:1: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘const char*’ /ssd/src/gcc/trunk/gcc/ggc.h:341:1: note: candidate: ‘void gt_pch_nx(int)’ <near match> gt_pch_nx (int) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/ggc.h:341:1: note: conversion of argument 1 would be ill-formed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:14: error: invalid conversion from ‘int_hash<int, 0, 2147483647>*’ to ‘int’ [-fpermissive] gt_pch_nx (&((*x))); ^~~~~~~ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:247, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/ggc.h:346:1: note: candidate: ‘void gt_pch_nx(unsigned int)’ <near match> gt_pch_nx (unsigned int) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/ggc.h:346:1: note: conversion of argument 1 would be ill-formed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:14: error: invalid conversion from ‘int_hash<int, 0, 2147483647>*’ to ‘unsigned int’ [-fpermissive] gt_pch_nx (&((*x))); ^~~~~~~ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:248, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/vec.h:1369:1: note: candidate: ‘template<class T, class A> void gt_pch_nx(vec<T, A, vl_embed>*)’ gt_pch_nx (vec<T, A, vl_embed> *v) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/vec.h:1369:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘vec<T, A, vl_embed>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:248, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/vec.h:1378:1: note: candidate: ‘template<class T, class A> void gt_pch_nx(vec<T*, A, vl_embed>*, gt_pointer_operator, void*)’ gt_pch_nx (vec<T *, A, vl_embed> *v, gt_pointer_operator op, void *cookie) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/vec.h:1378:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘vec<T*, A, vl_embed>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:248, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/vec.h:1386:1: note: candidate: ‘template<class T, class A> void gt_pch_nx(vec<T, A, vl_embed>*, gt_pointer_operator, void*)’ gt_pch_nx (vec<T, A, vl_embed> *v, gt_pointer_operator op, void *cookie) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/vec.h:1386:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘vec<T, A, vl_embed>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:595, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-map.h:312:1: note: candidate: ‘template<class K, class V, class H> void gt_pch_nx(hash_map<K, V, H>*)’ gt_pch_nx (hash_map<K, V, H> *h) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-map.h:312:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_map<K, V, H>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/hash-table.h:595, from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-map.h:327:1: note: candidate: ‘template<class K, class V, class H> void gt_pch_nx(hash_map<K, V, H>*, gt_pointer_operator, void*)’ gt_pch_nx (hash_map<K, V, H> *h, gt_pointer_operator op, void *cookie) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-map.h:327:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_map<K, V, H>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-table.h:1187:1: note: candidate: ‘template<class D> void gt_pch_nx(hash_table<E>*)’ gt_pch_nx (hash_table<D> *h) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-table.h:1187:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_table<E>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:480, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-table.h:1204:1: note: candidate: ‘template<class D> void gt_pch_nx(hash_table<E>*, gt_pointer_operator, void*)’ gt_pch_nx (hash_table<D> *h, gt_pointer_operator op, void *cookie) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-table.h:1204:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_table<E>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:481, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-set.h:200:1: note: candidate: ‘template<class K, class H> void gt_pch_nx(hash_set<K, false, H>*)’ gt_pch_nx (hash_set<K, false, H> *h) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-set.h:200:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_set<K, false, H>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/coretypes.h:481, from /ssd/src/gcc/trunk/gcc/except.c:114: /ssd/src/gcc/trunk/gcc/hash-set.h:207:1: note: candidate: ‘template<class K, class H> void gt_pch_nx(hash_set<K, false, H>*, gt_pointer_operator, void*)’ gt_pch_nx (hash_set<K, false, H> *h, gt_pointer_operator op, void *cookie) ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/hash-set.h:207:1: note: template argument deduction/substitution failed: In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:105:21: note: ‘int_hash<int, 0, 2147483647>’ is not derived from ‘hash_set<K, false, H>’ gt_pch_nx (&((*x))); ^ In file included from /ssd/src/gcc/trunk/gcc/except.c:117: /ssd/src/gcc/trunk/gcc/rtl.h:4584:13: note: candidate: ‘void gt_pch_nx(rtx_def*&)’ extern void gt_pch_nx (rtx &); ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/rtl.h:4584:13: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘rtx_def*&’ /ssd/src/gcc/trunk/gcc/rtl.h:4585:13: note: candidate: ‘void gt_pch_nx(rtx_def*&, gt_pointer_operator, void*)’ extern void gt_pch_nx (rtx &, gt_pointer_operator, void *); ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/rtl.h:4585:13: note: candidate expects 3 arguments, 1 provided In file included from /ssd/src/gcc/trunk/gcc/except.c:118: /ssd/src/gcc/trunk/gcc/tree.h:6283:13: note: candidate: ‘void gt_pch_nx(tree_node*&)’ extern void gt_pch_nx (tree &); ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/tree.h:6283:13: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘tree_node*&’ /ssd/src/gcc/trunk/gcc/tree.h:6284:13: note: candidate: ‘void gt_pch_nx(tree_node*&, gt_pointer_operator, void*)’ extern void gt_pch_nx (tree &, gt_pointer_operator, void *); ^~~~~~~~~ /ssd/src/gcc/trunk/gcc/tree.h:6284:13: note: candidate expects 3 arguments, 1 provided In file included from /ssd/src/gcc/trunk/gcc/except.c:3525: ./gt-except.h:86:1: note: candidate: ‘void gt_pch_nx(tree_hash&)’ gt_pch_nx (struct tree_hash& x_r ATTRIBUTE_UNUSED) ^~~~~~~~~ ./gt-except.h:86:1: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘tree_hash&’ ./gt-except.h:102:1: note: candidate: ‘void gt_pch_nx(int_hash<int, 0, 2147483647>&)’ gt_pch_nx (int_hash<int,0,INT_MAX>& x_r ATTRIBUTE_UNUSED) ^~~~~~~~~ ./gt-except.h:102:1: note: no known conversion for argument 1 from ‘int_hash<int, 0, 2147483647>*’ to ‘int_hash<int, 0, 2147483647>&’ make[2]: *** [Makefile:1142: except.o] Error 1 make[2]: Leaving directory '/ssd/build/gcc-trunk/gcc' make[1]: *** [Makefile:4781: all-stage1-gcc] Error 2 make[1]: Leaving directory '/ssd/build/gcc-trunk' make: *** [Makefile:27587: stage1-bubble] Error 2 make: Leaving directory '/ssd/build/gcc-trunk' Command exited with non-zero status 2