Commit 2813904b by Richard Biener Committed by Richard Biener

re PR middle-end/63237 (error: invalid operand in unary operation)

2014-09-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/63237
	* gimple-fold.c (get_maxval_strlen): Gimplify string length.

	* g++.dg/torture/pr63237.C: New testcase.

From-SVN: r215212
parent d9a72d17
2014-09-12 Richard Biener <rguenther@suse.de>
PR middle-end/63237
* gimple-fold.c (get_maxval_strlen): Gimplify string length.
2014-09-12 Marc Glisse <marc.glisse@inria.fr>
* tree.c (integer_each_onep): New function.
......@@ -2411,6 +2411,7 @@ gimple_fold_builtin_strlen (gimple_stmt_iterator *gsi)
tree len = get_maxval_strlen (gimple_call_arg (stmt, 0), 0);
if (!len)
return false;
len = force_gimple_operand_gsi (gsi, len, true, NULL, true, GSI_SAME_STMT);
replace_call_with_value (gsi, len);
return true;
}
......
2014-09-12 Richard Biener <rguenther@suse.de>
PR middle-end/63237
* g++.dg/torture/pr63237.C: New testcase.
2014-09-12 Marc Glisse <marc.glisse@inria.fr>
* gcc.dg/vec-andxor1.c: New file.
......
// { dg-do compile }
class A {
int Length;
public:
A(const char *p1) { Length = __builtin_strlen(p1); }
};
class B {
public:
void m_fn1(int, A);
};
class C {
public:
B &m_fn2();
};
int a;
void RewriteMacrosInInput() {
C b;
B &c = b.m_fn2();
c.m_fn1(0, &""[a]);
}
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