c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>
Sat, 16 Dec 2000 23:41:44 +0000 (23:41 +0000)
committerMichael Hayes <m.hayes@gcc.gnu.org>
Sat, 16 Dec 2000 23:41:44 +0000 (23:41 +0000)
* config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.

* config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.

* config/c4x/c4x.c (c4x_init_pragma): New function.
(c_lex_func): New variable.
(c4x_parse_pragma): Use c_lex_func.

Co-Authored-By: Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
From-SVN: r38317

gcc/ChangeLog
gcc/config/c4x/c4x-protos.h
gcc/config/c4x/c4x.c
gcc/config/c4x/c4x.h

index 1cc24d562f1db395e7fb69c33db2c2635a27edf3..1de2a260ba7c3366279b7b79bb8f65265bee0b24 100644 (file)
@@ -1,3 +1,14 @@
+2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+            Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
+
+       * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.
+
+       * config/c4x/c4x.c (c4x_init_pragma): New function.
+       (c_lex_func): New variable.
+       (c4x_parse_pragma): Use c_lex_func.
+
 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
index 57df4f352748d53813a1fb223de9c5cd51ed88a9..8c8b77032b7cc5ec5d7387c189a9d13b6ec99938 100644 (file)
@@ -308,6 +308,7 @@ extern void c4x_pr_FUNC_IS_PURE             PARAMS ((cpp_reader *));
 extern void c4x_pr_FUNC_NEVER_RETURNS  PARAMS ((cpp_reader *));
 extern void c4x_pr_INTERRUPT           PARAMS ((cpp_reader *));
 extern void c4x_pr_ignored             PARAMS ((cpp_reader *));
+extern void c4x_init_pragma            PARAMS ((int (*) (tree *)));
 #endif
 
 #endif
index 7127749b8f1f4d624b5552ef921d806afac6337b..775c7b6579be788d8fcc41ee2e380eb82123c151 100644 (file)
@@ -4391,6 +4391,16 @@ c4x_operand_subword (op, i, validate_address, mode)
    -1 for a malformed pragma.  */
 #define BAD(msgid, arg) do { warning (msgid, arg); return -1; } while (0)
 
+static int (*c_lex_func) (tree *);
+
+void
+c4x_init_pragma (get_token)
+  int (*get_token) PARAMS ((tree *));
+{
+  c_lex_func = get_token;
+}
+
+
 static int
 c4x_parse_pragma (name, func, sect)
      const char *name;
@@ -4399,25 +4409,25 @@ c4x_parse_pragma (name, func, sect)
 {
   tree f, s, x;
 
-  if (c_lex (&x) != CPP_OPEN_PAREN)
+  if (c_lex_func (&x) != CPP_OPEN_PAREN)
     BAD ("missing '(' after '#pragma %s' - ignored", name);
 
-  if (c_lex (&f) != CPP_NAME)
+  if (c_lex_func (&f) != CPP_NAME)
     BAD ("missing function name in '#pragma %s' - ignored", name);
 
   if (sect)
     {
-      if (c_lex (&x) != CPP_COMMA)
+      if (c_lex_func (&x) != CPP_COMMA)
        BAD ("malformed '#pragma %s' - ignored", name);
-      if (c_lex (&s) != CPP_STRING)
+      if (c_lex_func (&s) != CPP_STRING)
        BAD ("missing section name in '#pragma %s' - ignored", name);
       *sect = s;
     }
 
-  if (c_lex (&x) != CPP_CLOSE_PAREN)
+  if (c_lex_func (&x) != CPP_CLOSE_PAREN)
     BAD ("missing ')' for '#pragma %s' - ignored", name);
 
-  if (c_lex (&x) != CPP_EOF)
+  if (c_lex_func (&x) != CPP_EOF)
     warning ("junk at end of '#pragma %s'", name);
 
   *func = f;
index 2b3fe74d385aae026ef3395973ad29e749e7845c..48345310e6b221d4276f495ba74905ab1d314b35 100644 (file)
@@ -2385,6 +2385,7 @@ asm_fprintf (FILE, "%s%d:\n", PREFIX, NUM)
   cpp_register_pragma (PFILE, 0, "FUNC_NO_GLOBAL_ASG", c4x_pr_ignored);        \
   cpp_register_pragma (PFILE, 0, "FUNC_NO_IND_ASG", c4x_pr_ignored);   \
   cpp_register_pragma (PFILE, 0, "INTERRUPT", c4x_pr_INTERRUPT);       \
+  c4x_init_pragma (&c_lex);                                            \
 } while (0)
 
 #define SET_DEFAULT_DECL_ATTRIBUTES(DECL, ATTRIBUTES) \