re PR c++/64994 (Firefox build error: ICE: in cxx_eval_call_expression, at cp/constexpr.c:1353)
PR c++/64994 * constexpr.c (cxx_eval_call_expression): Walk the clone list. From-SVN: r220589
This commit is contained in:
parent
082908e33d
commit
0ec052fe44
@ -1,3 +1,8 @@
|
||||
2015-02-10 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/64994
|
||||
* constexpr.c (cxx_eval_call_expression): Walk the clone list.
|
||||
|
||||
2015-02-10 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/64982
|
||||
|
@ -1348,8 +1348,12 @@ cxx_eval_call_expression (const constexpr_ctx *ctx, tree t,
|
||||
if (DECL_SAVED_TREE (fun) == NULL_TREE
|
||||
&& (DECL_CONSTRUCTOR_P (fun) || DECL_DESTRUCTOR_P (fun)))
|
||||
/* The maybe-in-charge 'tor had its DECL_SAVED_TREE
|
||||
cleared, try the first clone. */
|
||||
fun = DECL_CHAIN (fun);
|
||||
cleared, try a clone. */
|
||||
for (fun = DECL_CHAIN (fun);
|
||||
fun && DECL_CLONED_FUNCTION_P (fun);
|
||||
fun = DECL_CHAIN (fun))
|
||||
if (DECL_SAVED_TREE (fun))
|
||||
break;
|
||||
gcc_assert (DECL_SAVED_TREE (fun));
|
||||
tree parms, res;
|
||||
|
||||
|
26
gcc/testsuite/g++.dg/cpp0x/constexpr-ctor18.C
Normal file
26
gcc/testsuite/g++.dg/cpp0x/constexpr-ctor18.C
Normal file
@ -0,0 +1,26 @@
|
||||
// PR c++/64994
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
class TimeStamp {
|
||||
public:
|
||||
constexpr TimeStamp() : mValue() {}
|
||||
int mValue;
|
||||
};
|
||||
|
||||
class A {
|
||||
class B;
|
||||
A(bool);
|
||||
};
|
||||
class C {
|
||||
TimeStamp mFadeBeginTime;
|
||||
};
|
||||
class A::B {
|
||||
public:
|
||||
B(int) {}
|
||||
TimeStamp mPrevEventTime[1];
|
||||
};
|
||||
|
||||
A::A(bool) {
|
||||
new C;
|
||||
B(0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user