]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c-errors.c
re PR target/37170 (gcc.dg/weak/weak-1.c)
[thirdparty/gcc.git] / gcc / c-errors.c
CommitLineData
b9161f44 1/* Various diagnostic subroutines for the GNU C language.
9dcd6f09 2 Copyright (C) 2000, 2001, 2003, 2007 Free Software Foundation, Inc.
b9161f44
GDR
3 Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
4
1322177d 5This file is part of GCC.
b9161f44 6
1322177d
LB
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9dcd6f09 9Software Foundation; either version 3, or (at your option) any later
1322177d 10version.
b9161f44 11
1322177d
LB
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
b9161f44
GDR
16
17You should have received a copy of the GNU General Public License
9dcd6f09
NC
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
b9161f44
GDR
20
21#include "config.h"
22#include "system.h"
4977bab6
ZW
23#include "coretypes.h"
24#include "tm.h"
b9161f44
GDR
25#include "tree.h"
26#include "c-tree.h"
27#include "tm_p.h"
28#include "flags.h"
29#include "diagnostic.h"
30
31/* Issue an ISO C99 pedantic warning MSGID. */
32
33void
509c9d60 34pedwarn_c99 (location_t location, int opt, const char *gmsgid, ...)
b9161f44 35{
47b69537 36 diagnostic_info diagnostic;
e34d07f2 37 va_list ap;
c22cacf3 38
4b794eaf 39 va_start (ap, gmsgid);
509c9d60 40 diagnostic_set_info (&diagnostic, gmsgid, &ap, location,
71205d17 41 flag_isoc99 ? DK_PEDWARN : DK_WARNING);
fcf73884 42 diagnostic.option_index = opt;
47b69537 43 report_diagnostic (&diagnostic);
e34d07f2 44 va_end (ap);
b9161f44 45}
85617eba
HPN
46
47/* Issue an ISO C90 pedantic warning MSGID. This function is supposed to
48 be used for matters that are allowed in ISO C99 but not supported in
49 ISO C90, thus we explicitly don't pedwarn when C99 is specified.
50 (There is no flag_c90.) */
51
52void
509c9d60 53pedwarn_c90 (location_t location, int opt, const char *gmsgid, ...)
85617eba
HPN
54{
55 diagnostic_info diagnostic;
56 va_list ap;
57
4b794eaf 58 va_start (ap, gmsgid);
509c9d60 59 diagnostic_set_info (&diagnostic, gmsgid, &ap, location,
71205d17 60 flag_isoc99 ? DK_WARNING : DK_PEDWARN);
fcf73884 61 diagnostic.option_index = opt;
85617eba
HPN
62 report_diagnostic (&diagnostic);
63 va_end (ap);
64}