aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2006-01-17 07:04:20 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2006-01-17 07:04:20 +0000
commit474eccc60315960b14fb0af4b7da9c6795ac4f0e (patch)
tree11320048997fd124915d16755d4d699f94cce278 /gcc/c-parser.c
parent2fbdae3614e1e34d29ca5ce2af89739e39e305bd (diff)
downloadgcc-474eccc60315960b14fb0af4b7da9c6795ac4f0e.zip
gcc-474eccc60315960b14fb0af4b7da9c6795ac4f0e.tar.gz
gcc-474eccc60315960b14fb0af4b7da9c6795ac4f0e.tar.bz2
common.opt (ftoplevel-reorder): New option.
./: * common.opt (ftoplevel-reorder): New option. * cgraph.c (cgraph_asm_nodes): New global variable. (cgraph_asm_last_node): New static variable. (cgraph_order): New global variable. (cgraph_create_node): Set new order field. (cgraph_varpool_node): Likewise. (decide_is_variable_needed): Return true if not flag_toplevel_reorder. (cgraph_add_asm_node): New function. * cgraph.h (struct cgraph_node): Add order field. (struct cgraph_varpool_node): Add order field. (struct cgraph_asm_node): Define. (cgraph_asm_nodes, cgraph_order): Declare. (cgraph_add_asm_node): Declare. * cgraphunit.c (cgraph_varpool_assemble_decl): New static function. (cgraph_varpool_assemble_pending_decls): Call it. (cgraph_output_pending_asms): New static function. (cgraph_finalize_compilation_unit): Call it. (struct cgraph_order_sort): Define. (cgraph_output_in_order): New static function. (cgraph_optimize): Call cgraph_output_pending_asms. Add code for !flag_toplevel_reorder case. * c-parser.c: Include "cgraph.h". (c_parser_asm_definition): Call cgraph_add_asm_node rather than assemble_asm. * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather than -fno-unit-at-a-time. * doc/invoke.texi (Option Summary): Mention -fno-toplevel-reorder. (Optimize Options): Document -fno-toplevel-reorder. Mention it in -funit-at-a-time documentation. cp/: * parser.c: Include "cgraph.h". (cp_parser_asm_definition): Call cgraph_add_asm_node rather than assemble_asm. From-SVN: r109811
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r--gcc/c-parser.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 91a9d29..522f2d2 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -56,6 +56,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "c-common.h"
#include "vec.h"
#include "target.h"
+#include "cgraph.h"
/* Miscellaneous data and functions needed for the parser. */
@@ -1387,12 +1388,8 @@ static void
c_parser_asm_definition (c_parser *parser)
{
tree asm_str = c_parser_simple_asm_expr (parser);
- /* ??? This only works sensibly in the presence of
- -fno-unit-at-a-time; file-scope asms really need to be passed to
- cgraph which needs to preserve the order of functions and
- file-scope asms. */
if (asm_str)
- assemble_asm (asm_str);
+ cgraph_add_asm_node (asm_str);
c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
}