PR sanitizer/84307
* c-decl.c (build_compound_literal): Call pushdecl (decl) even when
it is not TREE_STATIC.
* c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
its COMPOUND_LITERAL_EXPR_DECL.
From-SVN: r259641
+2018-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/84307
+ * c-decl.c (build_compound_literal): Call pushdecl (decl) even when
+ it is not TREE_STATIC.
+ * c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
+ not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
+ its COMPOUND_LITERAL_EXPR_DECL.
+
2018-03-21 Joseph Myers <joseph@codesourcery.com>
* c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
pushdecl (decl);
rest_of_decl_compilation (decl, 1, 0);
}
+ else
+ pushdecl (decl);
if (non_const)
{
break;
case COMPOUND_LITERAL_EXPR:
+ TREE_ADDRESSABLE (x) = 1;
+ TREE_ADDRESSABLE (COMPOUND_LITERAL_EXPR_DECL (x)) = 1;
+ return true;
+
case CONSTRUCTOR:
TREE_ADDRESSABLE (x) = 1;
return true;