#include "target.h"
#include "c-objc-common.h"
-static bool c_tree_printer (pretty_printer *, text_info *);
+static bool c_tree_printer (pretty_printer *, text_info *, const char *,
+ int, bool, bool, bool);
bool
c_missing_noreturn_ok_p (tree decl)
&& lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) == NULL)
{
if (do_warning)
- warning (0, "%Jfunction %qF can never be inlined because it "
- "is suppressed using -fno-inline", fn, fn);
+ warning (OPT_Winline, "function %q+F can never be inlined because it "
+ "is suppressed using -fno-inline", fn);
goto cannot_inline;
}
if (!DECL_DECLARED_INLINE_P (fn) && !targetm.binds_local_p (fn))
{
if (do_warning)
- warning (0, "%Jfunction %qF can never be inlined because it might not "
- "be bound within this unit of translation", fn, fn);
+ warning (OPT_Winline, "function %q+F can never be inlined because it "
+ "might not be bound within this unit of translation", fn);
goto cannot_inline;
}
if (!function_attribute_inlinable_p (fn))
{
if (do_warning)
- warning (0, "%Jfunction %qF can never be inlined because it uses "
- "attributes conflicting with inlining", fn, fn);
+ warning (OPT_Winline, "function %q+F can never be inlined because it "
+ "uses attributes conflicting with inlining", fn);
goto cannot_inline;
}
want an enhanced ObjC implementation. */
diagnostic_format_decoder (global_dc) = &c_tree_printer;
- /* If still unspecified, make it match -std=c99
- (allowing for -pedantic-errors). */
- if (mesg_implicit_function_declaration < 0)
- {
- if (flag_isoc99)
- mesg_implicit_function_declaration = flag_pedantic_errors ? 2 : 1;
- else
- mesg_implicit_function_declaration = 0;
- }
-
return true;
}
Please notice when called, the `%' part was already skipped by the
diagnostic machinery. */
static bool
-c_tree_printer (pretty_printer *pp, text_info *text)
+c_tree_printer (pretty_printer *pp, text_info *text, const char *spec,
+ int precision, bool wide, bool set_locus, bool hash)
{
tree t = va_arg (*text->args_ptr, tree);
tree name;
c_pretty_printer *cpp = (c_pretty_printer *) pp;
pp->padding = pp_none;
- switch (*text->format_spec)
+ if (precision != 0 || wide || hash)
+ return false;
+
+ if (set_locus && text->locus)
+ *text->locus = DECL_SOURCE_LOCATION (t);
+
+ switch (*spec)
{
case 'D':
if (DECL_DEBUG_EXPR_IS_FROM (t) && DECL_DEBUG_EXPR (t))
case 'T':
gcc_assert (TYPE_P (t));
name = TYPE_NAME (t);
-
+
if (name && TREE_CODE (name) == TYPE_DECL)
{
if (DECL_NAME (name))
{
return comptypes (TYPE_MAIN_VARIANT (x), TYPE_MAIN_VARIANT (y));
}
+
+/* Determine if the type is a vla type for the backend. */
+
+bool
+c_vla_unspec_p (tree x, tree fn ATTRIBUTE_UNUSED)
+{
+ return c_vla_type_p (x);
+}