mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 23:07:35 +08:00
cppinit.c (mark_named_operators): Split out from init_builtins.
* cppinit.c (mark_named_operators): Split out from init_builtins. (cpp_finish_options): Call it from here instead. testsuite: * gcc.dg/cpp/named_ops.c: New test. From-SVN: r53803
This commit is contained in:
parent
79ed7328ef
commit
17645b154d
@ -1,3 +1,8 @@
|
||||
2002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* cppinit.c (mark_named_operators): Split out from init_builtins.
|
||||
(cpp_finish_options): Call it from here instead.
|
||||
|
||||
2002-05-23 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* builtin-attrs.def: Update copyright years.
|
||||
|
@ -98,6 +98,7 @@ static void path_include PARAMS ((cpp_reader *,
|
||||
char *, int));
|
||||
static void init_library PARAMS ((void));
|
||||
static void init_builtins PARAMS ((cpp_reader *));
|
||||
static void mark_named_operators PARAMS ((cpp_reader *));
|
||||
static void append_include_chain PARAMS ((cpp_reader *,
|
||||
char *, int, int));
|
||||
static struct search_path * remove_dup_dir PARAMS ((cpp_reader *,
|
||||
@ -664,6 +665,23 @@ static const struct builtin operator_array[] =
|
||||
};
|
||||
#undef B
|
||||
|
||||
/* Mark the C++ named operators in the hash table. */
|
||||
static void
|
||||
mark_named_operators (pfile)
|
||||
cpp_reader *pfile;
|
||||
{
|
||||
const struct builtin *b;
|
||||
|
||||
for (b = operator_array;
|
||||
b < (operator_array + ARRAY_SIZE (operator_array));
|
||||
b++)
|
||||
{
|
||||
cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
|
||||
hp->flags |= NODE_OPERATOR;
|
||||
hp->value.operator = b->value;
|
||||
}
|
||||
}
|
||||
|
||||
/* Subroutine of cpp_read_main_file; reads the builtins table above and
|
||||
enters them, and language-specific macros, into the hash table. */
|
||||
static void
|
||||
@ -682,16 +700,6 @@ init_builtins (pfile)
|
||||
hp->value.builtin = b->value;
|
||||
}
|
||||
|
||||
if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names))
|
||||
for (b = operator_array;
|
||||
b < (operator_array + ARRAY_SIZE (operator_array));
|
||||
b++)
|
||||
{
|
||||
cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
|
||||
hp->flags |= NODE_OPERATOR;
|
||||
hp->value.operator = b->value;
|
||||
}
|
||||
|
||||
if (CPP_OPTION (pfile, cplusplus))
|
||||
_cpp_define_builtin (pfile, "__cplusplus 1");
|
||||
else if (CPP_OPTION (pfile, objc))
|
||||
@ -976,6 +984,10 @@ void
|
||||
cpp_finish_options (pfile)
|
||||
cpp_reader *pfile;
|
||||
{
|
||||
/* Mark named operators before handling command line macros. */
|
||||
if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names))
|
||||
mark_named_operators (pfile);
|
||||
|
||||
/* Install builtins and process command line macros etc. in the order
|
||||
they appeared, but only if not already preprocessed. */
|
||||
if (! CPP_OPTION (pfile, preprocessed))
|
||||
|
@ -1,3 +1,7 @@
|
||||
2002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* gcc.dg/cpp/named_ops.c: New test.
|
||||
|
||||
2002-05-23 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* gcc/testsuite/gcc.dg/weak-8.c: New test.
|
||||
|
11
gcc/testsuite/gcc.dg/cpp/named_ops.c
Normal file
11
gcc/testsuite/gcc.dg/cpp/named_ops.c
Normal file
@ -0,0 +1,11 @@
|
||||
/* Copyright (C) 2002 Free Software Foundation, Inc. */
|
||||
|
||||
/* { dg-do preprocess } */
|
||||
/* { dg-options -fpreprocessed } */
|
||||
|
||||
/* Tests that C++ named ops are still there with -fpreprocessed. */
|
||||
|
||||
/* Source: Neil Booth, 23 May 2002. */
|
||||
|
||||
#if 2 xor 2
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user