PR c++/64629
* c-format.c (check_format_arg): Call decl_constant_value.
From-SVN: r219964
+2015-01-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/64629
+ * c-format.c (check_format_arg): Call decl_constant_value.
+
2015-01-19 Martin Liska <mliska@suse.cz>
* c-common.c (handle_noicf_attribute): New function.
tree array_init;
alloc_pool fwt_pool;
+ if (TREE_CODE (format_tree) == VAR_DECL)
+ {
+ /* Pull out a constant value if the front end didn't. */
+ format_tree = decl_constant_value (format_tree);
+ STRIP_NOPS (format_tree);
+ }
+
if (integer_zerop (format_tree))
{
/* Skip to first argument to check, so we can see if this format
--- /dev/null
+// PR c++/64629
+// { dg-options "-Wformat -Wformat-security" }
+
+extern void bar (int, const char *, ...) __attribute__((format (printf, 2, 3)));
+void
+foo (void)
+{
+ const char *const msg = "abc";
+ bar (1, msg);
+}