c-common.h: Update comments about ObjC/ObjC++ entry points.
authorZiemowit Laski <zlaski@apple.com>
Sat, 28 Aug 2004 20:58:56 +0000 (20:58 +0000)
committerZiemowit Laski <zlaski@gcc.gnu.org>
Sat, 28 Aug 2004 20:58:56 +0000 (20:58 +0000)
[gcc/ChangeLog]
2004-08-28  Ziemowit Laski  <zlaski@apple.com>

* c-common.h: Update comments about ObjC/ObjC++ entry points.
(objc_is_reserved_word): New prototype.
(get_current_scope, objc_mark_locals_volatile): Move prototypes to
separate section; these are call-backs.
* c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
ObjC/ObjC++ "@" keywords.
* c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
prototypes; they already live in c-common.h.
* stub-objc.c: Update copyright notice.
(objc_is_reserved_word): New stub.

[gcc/cp/ChangeLog]
2004-08-28  Ziemowit Laski  <zlaski@apple.com>

* Make-lang.in (CXX_OBJS): Split up into CXX_OBJS and
CXX_AND_OBJCXX_OBJS.
(CXX_C_OBJS): Include in CXX_AND_OBJCXX_OBJS instead of listing
separately on the link line.

[gcc/objc/ChangeLog]
2004-08-28  Ziemowit Laski  <zlaski@apple.com>

* objc-act.c (objc_is_reserved_word): New function.

From-SVN: r86702

gcc/ChangeLog
gcc/c-common.h
gcc/c-lex.c
gcc/c-tree.h
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/objc/ChangeLog
gcc/objc/objc-act.c
gcc/stub-objc.c

index 6eb15ca7570ed8a8e247137c5f3ec536e5d251e4..f949d31e3920f2fce8a769dc3fbc84b5c1023bc7 100644 (file)
@@ -1,3 +1,16 @@
+2004-08-28  Ziemowit Laski  <zlaski@apple.com>
+
+       * c-common.h: Update comments about ObjC/ObjC++ entry points.
+       (objc_is_reserved_word): New prototype.
+       (get_current_scope, objc_mark_locals_volatile): Move prototypes to
+       separate section; these are call-backs.
+       * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
+       ObjC/ObjC++ "@" keywords.
+       * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
+       prototypes; they already live in c-common.h.
+       * stub-objc.c: Update copyright notice.
+       (objc_is_reserved_word): New stub.
+
 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
 
        * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
index b2da85d8188540a3eebbe4e97acab6f42baa0c8d..86706e6e8172f5af7ddfa7fb62deb39453139252 100644 (file)
@@ -896,21 +896,26 @@ extern void c_stddef_cpp_builtins (void);
 extern void fe_file_change (const struct line_map *);
 extern void c_parse_error (const char *, enum cpp_ttype, tree);
 
-/* The following have been moved here from c-tree.h, since they're needed
-   in the ObjC++ world, too.  What is more, stub-objc.c could use a few
-   prototypes.  */
+/* Objective-C / Objective-C++ entry points.  */
+
+/* The following ObjC/ObjC++ functions are called by the C and/or C++
+   front-ends; they all must have corresponding stubs in stub-objc.c.  */
 extern tree lookup_interface (tree);
 extern tree is_class_name (tree);
 extern tree objc_is_object_ptr (tree);
 extern void objc_check_decl (tree);
+extern int objc_is_reserved_word (tree);
 extern int objc_comptypes (tree, tree, int);
 extern tree objc_message_selector (void);
 extern tree lookup_objc_ivar (tree);
-extern void *get_current_scope (void);
-extern void objc_mark_locals_volatile (void *);
 extern void objc_clear_super_receiver (void);
 extern int objc_is_public (tree, tree);
 
+/* The following are provided by the C and C++ front-ends, and called by
+   ObjC/ObjC++.  */
+extern void *get_current_scope (void);
+extern void objc_mark_locals_volatile (void *);
+
 /* In c-ppoutput.c  */
 extern void init_pp_output (FILE *);
 extern void preprocess_file (cpp_reader *);
index 720519f52d5f1af4b589edd647acab66d7638097..4b875618420e197218b325827ffa886e4f4ba38a 100644 (file)
@@ -389,8 +389,7 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
            {
            case CPP_NAME:
              val = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok->val.node));
-             if (C_IS_RESERVED_WORD (val)
-                 && OBJC_IS_AT_KEYWORD (C_RID_CODE (val)))
+             if (objc_is_reserved_word (val))
                {
                  *value = val;
                  return CPP_AT_NAME;
index f9f06eb517c1469fba59f6cb460e34db687b76c9..851b3a4beb9bc5acc649523ebf904c538eb65695 100644 (file)
@@ -307,8 +307,6 @@ extern bool c_eh_initialized_p;
 
 /* In c-decl.c */
 extern void c_finish_incomplete_decl (tree);
-extern void *get_current_scope (void);
-extern void objc_mark_locals_volatile (void *);
 extern void c_write_global_declarations (void);
 
 /* In order for the format checking to accept the C frontend
index efa79bb6c1aedd8e7e4cdf038efd315093651fd2..6b4bb4739f1df59933bfc0aa92cff4a06f8db8cc 100644 (file)
@@ -1,3 +1,10 @@
+2004-08-28  Ziemowit Laski  <zlaski@apple.com>
+
+       * Make-lang.in (CXX_OBJS): Split up into CXX_OBJS and
+       CXX_AND_OBJCXX_OBJS.
+       (CXX_C_OBJS): Include in CXX_AND_OBJCXX_OBJS instead of listing
+       separately on the link line.
+
 2004-08-28  Jason Merrill  <jason@redhat.com>
 
        * decl.c (expand_static_init): Avoid bogus warnings.
index fcea2b8606ae16069007ad5dce971736ee860b52..1d1017776a63792a5e5f87c9b04e1eadde526c1f 100644 (file)
@@ -76,21 +76,23 @@ CXX_C_OBJS = attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o \
        c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \
        c-gimplify.o tree-inline.o
 
-# Language-specific object files.
-CXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \
+# Language-specific object files for C++ and Objective C++.
+CXX_AND_OBJCXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \
  cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parser.o cp/ptree.o cp/rtti.o \
  cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o \
  cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o \
- cp/mangle.o cp/cp-lang.o cp/name-lookup.o cp/cxx-pretty-print.o \
- cp/cp-gimplify.o tree-mudflap.o
+ cp/mangle.o cp/name-lookup.o cp/cxx-pretty-print.o \
+ cp/cp-gimplify.o tree-mudflap.o $(CXX_C_OBJS)
+
+# Language-specific object files for C++.
+CXX_OBJS = cp/cp-lang.o stub-objc.o $(CXX_AND_OBJCXX_OBJS)
 
 # Use strict warnings for this front end.
 cp-warn = $(STRICT_WARN) $(WERROR)
 
-cc1plus$(exeext): $(CXX_OBJS) $(CXX_C_OBJS) $(BACKEND) \
-                 $(LIBDEPS)
+cc1plus$(exeext): $(CXX_OBJS) $(BACKEND) $(LIBDEPS)
        $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-             $(CXX_OBJS) $(CXX_C_OBJS) $(BACKEND) $(LIBS)
+             $(CXX_OBJS) $(BACKEND) $(LIBS)
 
 # Special build rules.
 $(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
index d9f42f9df9051d1e36a1394f957a7ab23023aa44..dc97ef5b5b8e92c09c361766ad49700b5f12a8ff 100644 (file)
@@ -1,3 +1,7 @@
+2004-08-28  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc-act.c (objc_is_reserved_word): New function.
+
 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
 
        * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
index bc5da033e2561cd300c3e31e7449d45fb90850ac..afc22d39c45a535d85b1cc5f4e506ac0a8ee4057 100644 (file)
@@ -608,6 +608,23 @@ lookup_protocol_in_reflist (tree rproto_list, tree lproto)
   return 0;
 }
 
+/* Return 1 if IDENT is an ObjC/ObjC++ reserved keyword in the context of
+   an '@'.  */
+
+int
+objc_is_reserved_word (tree ident)
+{
+  unsigned char code = C_RID_CODE (ident);
+
+  return (OBJC_IS_AT_KEYWORD (code)
+#ifdef OBJCPLUS
+         || code == RID_CLASS || code == RID_PUBLIC
+         || code == RID_PROTECTED || code == RID_PRIVATE
+         || code == RID_TRY || code == RID_THROW || code == RID_CATCH
+#endif
+           );
+}
+
 /* Return true if TYPE is 'id'.  */
 
 static bool
index fc1afe0eff64eaee429764624ddb064428bfc4d4..abe593da37a02c4e228d6a5e696b0ece27030753 100644 (file)
@@ -2,7 +2,7 @@
    that are called from within the C and C++ front-ends,
    respectively.
    Copyright (C) 1991, 1995, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -56,6 +56,12 @@ objc_check_decl (tree ARG_UNUSED (decl))
 {
 }
    
+int
+objc_is_reserved_word (tree ARG_UNUSED (ident))
+{
+  return 0;
+}
+
 int
 objc_comptypes (tree ARG_UNUSED (lhs), tree ARG_UNUSED (rhs),
                 int ARG_UNUSED (reflexive))