VAR. */
if (TREE_CODE (expr) != TARGET_EXPR)
expr = get_target_expr (expr);
+ else if (TREE_ADDRESSABLE (expr))
+ TREE_ADDRESSABLE (var) = 1;
if (TREE_CODE (decl) == FIELD_DECL
&& extra_warnings && !TREE_NO_WARNING (decl))
if (TREE_TYPE (base) == error_mark_node)
return NULL_TREE;
if (VAR_P (base))
- TREE_ADDRESSABLE (base) = 1;
+ /* ??? We should be able to assert that TREE_ADDRESSABLE is set,
+ but since the use can be in a debug stmt we can't. */
+ ;
else if (TREE_CODE (base) == FUNCTION_DECL)
{
/* Make sure we create a cgraph node for functions we'll reference.
using AR = const int[];
return AR{ 1,42,3,4,5,6,7,8,9,0 }[5];
}
-
-int g()
-{
- std::initializer_list<int> a = {1,42,3};
- return a.begin()[0];
-}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O3 -fcompare-debug" } */
+
+int *a;
+static int b, c, d, e, g, h;
+int f;
+void i() {
+ int *j[] = {&e, &b, &b, &d, &b, &b, &g, &e, &g, &b, &b,
+ &b, &b, &g, &e, &e, &b, &b, &d, &b, &b, &e,
+ &e, &g, &b, &b, &b, &b, &g, &e, &g, &c, &e};
+ int **k = &j[5];
+ for (; f;)
+ b |= *a;
+ *k = &h;
+}
+int main() {}