X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Fconfig%2Fv850%2Fv850-c.c;fp=gcc%2Fconfig%2Fv850%2Fv850-c.c;h=dc0082cf6efeda571bd308aad2497d3f7c898a58;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=32f4882dd8722c76f26f96cfe6cb0f30e33e748b;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/config/v850/v850-c.c b/gcc/config/v850/v850-c.c index 32f4882d..dc0082cf 100644 --- a/gcc/config/v850/v850-c.c +++ b/gcc/config/v850/v850-c.c @@ -1,30 +1,30 @@ /* v850 specific, C compiler specific functions. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2007 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) +the Free Software Foundation; either version 3, or (at your option) any later version. -GNU CC is distributed in the hope that it will be useful, +GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +along with GCC; see the file COPYING3. If not see +. */ #include "config.h" #include "system.h" +#include "coretypes.h" +#include "tm.h" #include "cpplib.h" #include "tree.h" #include "c-pragma.h" -#include "c-lex.h" #include "toplev.h" #include "ggc.h" #include "tm_p.h" @@ -33,15 +33,14 @@ Boston, MA 02111-1307, USA. */ #define streq(a,b) (strcmp (a, b) == 0) #endif -static int pop_data_area PARAMS ((v850_data_area)); -static int push_data_area PARAMS ((v850_data_area)); -static void mark_current_function_as_interrupt PARAMS ((void)); +static int pop_data_area (v850_data_area); +static int push_data_area (v850_data_area); +static void mark_current_function_as_interrupt (void); /* Push a data area onto the stack. */ static int -push_data_area (data_area) - v850_data_area data_area; +push_data_area (v850_data_area data_area) { data_area_stack_element * elem; @@ -61,13 +60,14 @@ push_data_area (data_area) /* Remove a data area from the stack. */ static int -pop_data_area (data_area) - v850_data_area data_area; +pop_data_area (v850_data_area data_area) { if (data_area_stack == NULL) - warning ("#pragma GHS endXXXX found without previous startXXX"); + warning (OPT_Wpragmas, "#pragma GHS endXXXX found without " + "previous startXXX"); else if (data_area != data_area_stack->data_area) - warning ("#pragma GHS endXXX does not match previous startXXX"); + warning (OPT_Wpragmas, "#pragma GHS endXXX does not match " + "previous startXXX"); else { data_area_stack_element * elem; @@ -86,13 +86,13 @@ pop_data_area (data_area) /* Set the machine specific 'interrupt' attribute on the current function. */ static void -mark_current_function_as_interrupt () +mark_current_function_as_interrupt (void) { tree name; if (current_function_decl == NULL_TREE) { - warning ("cannot set interrupt attribute: no current function"); + warning (0, "cannot set interrupt attribute: no current function"); return; } @@ -100,7 +100,7 @@ mark_current_function_as_interrupt () if (name == NULL_TREE || TREE_CODE (name) != IDENTIFIER_NODE) { - warning ("cannot set interrupt attribute: no such identifier"); + warning (0, "cannot set interrupt attribute: no such identifier"); return; } @@ -112,8 +112,7 @@ mark_current_function_as_interrupt () /* Support for GHS pragmata. */ void -ghs_pragma_section (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_section (cpp_reader * pfile ATTRIBUTE_UNUSED) { int repeat; @@ -125,7 +124,7 @@ ghs_pragma_section (pfile) const char *sect, *alias; enum GHS_section_kind kind; - type = c_lex (&x); + type = pragma_lex (&x); if (type == CPP_EOF && !repeat) goto reset; @@ -135,18 +134,18 @@ ghs_pragma_section (pfile) goto bad; repeat = 0; - if (c_lex (&x) != CPP_EQ) + if (pragma_lex (&x) != CPP_EQ) goto bad; - if (c_lex (&x) != CPP_NAME) + if (pragma_lex (&x) != CPP_NAME) goto bad; alias = IDENTIFIER_POINTER (x); - type = c_lex (&x); + type = pragma_lex (&x); if (type == CPP_COMMA) repeat = 1; else if (type != CPP_EOF) - warning ("junk at end of #pragma ghs section"); + warning (OPT_Wpragmas, "junk at end of #pragma ghs section"); if (streq (sect, "data")) kind = GHS_SECTION_KIND_DATA; else if (streq (sect, "text")) kind = GHS_SECTION_KIND_TEXT; @@ -163,7 +162,7 @@ ghs_pragma_section (pfile) else if (streq (sect, "zbss")) kind = GHS_SECTION_KIND_ZDATA; else { - warning ("unrecognized section name \"%s\"", sect); + warning (0, "unrecognized section name \"%s\"", sect); return; } @@ -178,7 +177,7 @@ ghs_pragma_section (pfile) return; bad: - warning ("malformed #pragma ghs section"); + warning (OPT_Wpragmas, "malformed #pragma ghs section"); return; reset: @@ -192,85 +191,78 @@ ghs_pragma_section (pfile) } void -ghs_pragma_interrupt (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_interrupt (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs interrupt"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs interrupt"); mark_current_function_as_interrupt (); } void -ghs_pragma_starttda (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_starttda (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs starttda"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs starttda"); push_data_area (DATA_AREA_TDA); } void -ghs_pragma_startsda (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_startsda (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs startsda"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs startsda"); push_data_area (DATA_AREA_SDA); } void -ghs_pragma_startzda (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_startzda (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs startzda"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs startzda"); push_data_area (DATA_AREA_ZDA); } void -ghs_pragma_endtda (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_endtda (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs endtda"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs endtda"); pop_data_area (DATA_AREA_TDA); } void -ghs_pragma_endsda (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_endsda (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs endsda"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs endsda"); pop_data_area (DATA_AREA_SDA); } void -ghs_pragma_endzda (pfile) - cpp_reader *pfile ATTRIBUTE_UNUSED; +ghs_pragma_endzda (cpp_reader * pfile ATTRIBUTE_UNUSED) { tree x; - if (c_lex (&x) != CPP_EOF) - warning ("junk at end of #pragma ghs endzda"); + if (pragma_lex (&x) != CPP_EOF) + warning (OPT_Wpragmas, "junk at end of #pragma ghs endzda"); pop_data_area (DATA_AREA_ZDA); }