You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA. */
#include "config.h"
#include "system.h"
#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;
}
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 (t) && DECL_DEBUG_EXPR_IS_FROM (t))
+ if (DECL_DEBUG_EXPR_IS_FROM (t) && DECL_DEBUG_EXPR (t))
{
t = DECL_DEBUG_EXPR (t);
if (!DECL_P (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);
+}