aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/go-gcc.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2018-10-29 19:25:57 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2018-10-29 19:25:57 +0000
commita4e30bef6446858bba7222afcf233c2d92e5c774 (patch)
tree97f25948a4cc57ff9cc6f4141281aad27714b866 /gcc/go/go-gcc.cc
parent943cc2fb6463ab8e06c2f2bcc4281a65e9dc4a78 (diff)
downloadgcc-a4e30bef6446858bba7222afcf233c2d92e5c774.zip
gcc-a4e30bef6446858bba7222afcf233c2d92e5c774.tar.gz
gcc-a4e30bef6446858bba7222afcf233c2d92e5c774.tar.bz2
compiler: pass a single flags argument to Backend::function
Reviewed-on: https://go-review.googlesource.com/c/145319 * go-gcc.cc (Gcc_backend::function): Change to use a single flags parameter. From-SVN: r265599
Diffstat (limited to 'gcc/go/go-gcc.cc')
-rw-r--r--gcc/go/go-gcc.cc22
1 files changed, 9 insertions, 13 deletions
diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc
index 1a449b7..9c317e0 100644
--- a/gcc/go/go-gcc.cc
+++ b/gcc/go/go-gcc.cc
@@ -482,9 +482,7 @@ class Gcc_backend : public Backend
Bfunction*
function(Btype* fntype, const std::string& name, const std::string& asm_name,
- bool is_visible, bool is_declaration, bool is_inlinable,
- bool disable_split_stack, bool does_not_return,
- bool in_unique_section, Location);
+ unsigned int flags, Location);
Bstatement*
function_defer_statement(Bfunction* function, Bexpression* undefer,
@@ -3047,10 +3045,8 @@ Gcc_backend::label_address(Blabel* label, Location location)
Bfunction*
Gcc_backend::function(Btype* fntype, const std::string& name,
- const std::string& asm_name, bool is_visible,
- bool is_declaration, bool is_inlinable,
- bool disable_split_stack, bool does_not_return,
- bool in_unique_section, Location location)
+ const std::string& asm_name, unsigned int flags,
+ Location location)
{
tree functype = fntype->get_tree();
if (functype != error_mark_node)
@@ -3065,9 +3061,9 @@ Gcc_backend::function(Btype* fntype, const std::string& name,
tree decl = build_decl(location.gcc_location(), FUNCTION_DECL, id, functype);
if (! asm_name.empty())
SET_DECL_ASSEMBLER_NAME(decl, get_identifier_from_string(asm_name));
- if (is_visible)
+ if ((flags & function_is_visible) != 0)
TREE_PUBLIC(decl) = 1;
- if (is_declaration)
+ if ((flags & function_is_declaration) != 0)
DECL_EXTERNAL(decl) = 1;
else
{
@@ -3079,16 +3075,16 @@ Gcc_backend::function(Btype* fntype, const std::string& name,
DECL_CONTEXT(resdecl) = decl;
DECL_RESULT(decl) = resdecl;
}
- if (!is_inlinable)
+ if ((flags & function_is_inlinable) == 0)
DECL_UNINLINABLE(decl) = 1;
- if (disable_split_stack)
+ if ((flags & function_no_split_stack) != 0)
{
tree attr = get_identifier ("no_split_stack");
DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
}
- if (does_not_return)
+ if ((flags & function_does_not_return) != 0)
TREE_THIS_VOLATILE(decl) = 1;
- if (in_unique_section)
+ if ((flags & function_in_unique_section) != 0)
resolve_unique_section(decl, 0, 1);
go_preserve_from_gc(decl);