diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-10-04 23:48:29 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-10-04 23:48:29 +0000 |
commit | 76b67a0ac9afadfda332b68c004e3262a1b448b7 (patch) | |
tree | 56aa856a4dca8104a204bfd0d5f0ae71bc0d65ca | |
parent | 12f64ca5e16915c6d6b0079b0286cc8e6066975b (diff) | |
download | gcc-76b67a0ac9afadfda332b68c004e3262a1b448b7.zip gcc-76b67a0ac9afadfda332b68c004e3262a1b448b7.tar.gz gcc-76b67a0ac9afadfda332b68c004e3262a1b448b7.tar.bz2 |
re PR c++/58560 ([c++11] ICE with auto in typedef)
/cp
2013-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58560
* typeck2.c (build_functional_cast): Use error_operand_p on exp.
/testsuite
2013-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58560
* g++.dg/cpp0x/auto39.C: New.
From-SVN: r203220
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/typeck2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/auto39.C | 6 |
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 88e5078..219f415 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58560 + * typeck2.c (build_functional_cast): Use error_operand_p on exp. + +2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58503 * parser.c (cp_parser_perform_range_for_lookup): If eventually either *begin or *end is type-dependent, return NULL_TREE. diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 8882816..011406c 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -1757,7 +1757,7 @@ build_functional_cast (tree exp, tree parms, tsubst_flags_t complain) tree type; vec<tree, va_gc> *parmvec; - if (exp == error_mark_node || parms == error_mark_node) + if (error_operand_p (exp) || parms == error_mark_node) return error_mark_node; if (TREE_CODE (exp) == TYPE_DECL) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 68d415e..20ffa47 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58560 + * g++.dg/cpp0x/auto39.C: New. + +2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58503 * g++.dg/cpp0x/range-for26.C: New. * g++.dg/cpp0x/range-for27.C: Likewise. diff --git a/gcc/testsuite/g++.dg/cpp0x/auto39.C b/gcc/testsuite/g++.dg/cpp0x/auto39.C new file mode 100644 index 0000000..dfa1fb4 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/auto39.C @@ -0,0 +1,6 @@ +// PR c++/58560 +// { dg-do compile { target c++11 } } + +typedef auto T; // { dg-error "typedef declared 'auto'" } + +void foo() { T(); } |