Commit 68a29e1c by Jason Merrill Committed by Jason Merrill

re PR c++/46304 (g++ crashes with ICE in bitmap_first_set_bit, at bitmap.c:770)

	PR c++/46304
	* typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.

From-SVN: r172754
parent b48de483
2011-04-19 Jason Merrill <jason@redhat.com> 2011-04-19 Jason Merrill <jason@redhat.com>
PR c++/46304
* typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
PR c++/45267 PR c++/45267
* decl.c (duplicate_decls): Keep always_inline attribute * decl.c (duplicate_decls): Keep always_inline attribute
in sync with DECL_DISREGARD_INLINE_LIMITS. in sync with DECL_DISREGARD_INLINE_LIMITS.
......
...@@ -4357,7 +4357,11 @@ cp_build_binary_op (location_t location, ...@@ -4357,7 +4357,11 @@ cp_build_binary_op (location_t location,
gcc_unreachable(); gcc_unreachable();
} }
} }
return build2 (COMPLEX_EXPR, result_type, real, imag); real = fold_if_not_in_template (real);
imag = fold_if_not_in_template (imag);
result = build2 (COMPLEX_EXPR, result_type, real, imag);
result = fold_if_not_in_template (result);
return result;
} }
/* For certain operations (which identify themselves by shorten != 0) /* For certain operations (which identify themselves by shorten != 0)
......
2011-04-19 Jason Merrill <jason@redhat.com> 2011-04-19 Jason Merrill <jason@redhat.com>
* g++.dg/ext/complex7.C: New.
* g++.dg/ext/attrib41.C: New. * g++.dg/ext/attrib41.C: New.
2011-04-19 Kaz Kojima <kkojima@gcc.gnu.org> 2011-04-19 Kaz Kojima <kkojima@gcc.gnu.org>
......
// { dg-options "" }
class A
{
static const _Complex double x = 1.0 + 2.0i;
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment