mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 14:06:02 +08:00
re PR c++/45908 ([C++0x] ICE involving decltype: in tree_low_cst, at tree.h:4114)
PR c++/45908 * typeck.c (cp_build_addr_expr_1): Add check for incomplete types in code folding offsetof-like computations. From-SVN: r165031
This commit is contained in:
parent
9c506f103c
commit
ccd2b32278
@ -1,3 +1,9 @@
|
||||
2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR c++/45908
|
||||
* typeck.c (cp_build_addr_expr_1): Add check for incomplete types in
|
||||
code folding offsetof-like computations.
|
||||
|
||||
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
PR objc++/31125
|
||||
|
@ -4947,6 +4947,7 @@ cp_build_addr_expr_1 (tree arg, bool strict_lvalue, tsubst_flags_t complain)
|
||||
&& TREE_CODE (argtype) != METHOD_TYPE
|
||||
&& argtype != unknown_type_node
|
||||
&& (val = get_base_address (arg))
|
||||
&& COMPLETE_TYPE_P (TREE_TYPE (val))
|
||||
&& TREE_CODE (val) == INDIRECT_REF
|
||||
&& TREE_CONSTANT (TREE_OPERAND (val, 0)))
|
||||
{
|
||||
|
@ -1,3 +1,7 @@
|
||||
2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* g++.dg/cpp0x/pr45908.C: New test.
|
||||
|
||||
2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/opt6.ad[sb]: New test.
|
||||
|
18
gcc/testsuite/g++.dg/cpp0x/pr45908.C
Normal file
18
gcc/testsuite/g++.dg/cpp0x/pr45908.C
Normal file
@ -0,0 +1,18 @@
|
||||
// PR c++/45908
|
||||
// Testcase by Jonathan Wakely <redi@gcc.gnu.org>
|
||||
|
||||
// { dg-do compile }
|
||||
// { dg-options "-std=c++0x" }
|
||||
|
||||
struct vector {
|
||||
struct iterator { };
|
||||
struct const_iterator { };
|
||||
iterator begin();
|
||||
const_iterator begin() const;
|
||||
};
|
||||
|
||||
class block {
|
||||
vector v;
|
||||
auto end() const -> decltype(v.begin())
|
||||
{ return v.begin(); } // { dg-error "conversion" }
|
||||
};
|
Loading…
Reference in New Issue
Block a user