Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/show-template-tree.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-options "-fdiagnostics-show-template-tree" } template<typename> struct vector {}; template<typename, typename> struct map {}; template<int> struct arr {}; void fn_1(vector<int>); void fn_2(map<int, int>); void fn_3(vector<map<int, float> >); void takes_arr_10 (arr<10>); void test () { fn_1 (vector<int> ()); fn_1 (42); // { dg-error "could not convert '42' from 'int' to 'vector<int>'" } fn_1 (vector<double> ()); // { dg-error "could not convert .* from 'vector<double>' to 'vector<int>'" } /* { dg-begin-multiline-output "" } vector< [double != int]> { dg-end-multiline-output "" } */ fn_1 (map<int, int> ()); // { dg-error "could not convert .* from 'map<int, int>' to 'vector<int>'" } fn_2 (map<int, int>()); fn_2 (map<int, double>()); // { dg-error "could not convert .* from 'map<.\\.\\.\\..,double>. to .map<.\\.\\.\\..,int>'" } /* { dg-begin-multiline-output "" } map< [...], [double != int]> { dg-end-multiline-output "" } */ fn_2 (map<double, double>()); // { dg-error "could not convert .* from .map<double,double>. to .map<int,int>." } /* { dg-begin-multiline-output "" } map< [double != int], [double != int]> { dg-end-multiline-output "" } */ fn_3 (vector<map<int, float> >()); fn_3 (vector<map<int, double> >()); // { dg-error "could not convert .* from 'vector<map<.\\.\\.\\..,double>>' to 'vector<map<.\\.\\.\\..,float>>'" } /* { dg-begin-multiline-output "" } vector< map< [...], [double != float]>> { dg-end-multiline-output "" } */ takes_arr_10 (arr<5>()); // { dg-error "could not convert '.*' from 'arr<5>' to 'arr<10>'" } /* { dg-begin-multiline-output "" } arr< [5 != 10]> { dg-end-multiline-output "" } */ }