From 7ed47c042e44ac0809d65ddfec988e1305067239 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Thu, 12 Jul 2001 07:50:58 +0000 Subject: decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER for `register' variables with an asm-specification. * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER for `register' variables with an asm-specification. From-SVN: r43963 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 486533b..3d8f346 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-07-12 Mark Mitchell + + * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER + for `register' variables with an asm-specification. + 2001-07-11 Mark Mitchell * semantics.c (finish_asm_stmt): Mark the output operands diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 5de71508..c0e9b85 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -7806,7 +7806,14 @@ make_rtl_for_nonlocal_decl (decl, init, asmspec) /* Set the DECL_ASSEMBLER_NAME for the variable. */ if (asmspec) - SET_DECL_ASSEMBLER_NAME (decl, get_identifier (asmspec)); + { + SET_DECL_ASSEMBLER_NAME (decl, get_identifier (asmspec)); + /* The `register' keyword, when used together with an + asm-specification, indicates that the variable should be + placed in a particular register. */ + if (DECL_REGISTER (decl)) + DECL_C_HARD_REGISTER (decl) = 1; + } /* We don't create any RTL for local variables. */ if (DECL_FUNCTION_SCOPE_P (decl) && !TREE_STATIC (decl)) -- cgit v1.1