re PR go/77701 (suspicious code in go/go-gcc.cc)

PR go/77701
	* go-gcc.cc (Gcc_backend::Gcc_backend): Fix calls to integer_type
	to pass arguments in the correct order.

From-SVN: r240451
This commit is contained in:
Chris Manghane 2016-09-23 17:55:53 +00:00 committed by Ian Lance Taylor
parent e0535922dc
commit fdbda43d03
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2016-09-23 Chris Manghane <cmang@google.com>
PR go/77701
* go-gcc.cc (Gcc_backend::Gcc_backend): Fix calls to integer_type
to pass arguments in the correct order.
2016-09-22 Ian Lance Taylor <iant@golang.org> 2016-09-22 Ian Lance Taylor <iant@golang.org>
* go-gcc.cc (Gcc_backend::Gcc_backend): Declare * go-gcc.cc (Gcc_backend::Gcc_backend): Declare

View File

@ -651,25 +651,25 @@ Gcc_backend::Gcc_backend()
{ {
/* We need to define the fetch_and_add functions, since we use them /* We need to define the fetch_and_add functions, since we use them
for ++ and --. */ for ++ and --. */
tree t = this->integer_type(BITS_PER_UNIT, 1)->get_tree(); tree t = this->integer_type(true, BITS_PER_UNIT)->get_tree();
tree p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE)); tree p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_fetch_and_add_1", this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_fetch_and_add_1",
NULL, build_function_type_list(t, p, t, NULL_TREE), NULL, build_function_type_list(t, p, t, NULL_TREE),
false, false); false, false);
t = this->integer_type(BITS_PER_UNIT * 2, 1)->get_tree(); t = this->integer_type(true, BITS_PER_UNIT * 2)->get_tree();
p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE)); p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_fetch_and_add_2", this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_fetch_and_add_2",
NULL, build_function_type_list(t, p, t, NULL_TREE), NULL, build_function_type_list(t, p, t, NULL_TREE),
false, false); false, false);
t = this->integer_type(BITS_PER_UNIT * 4, 1)->get_tree(); t = this->integer_type(true, BITS_PER_UNIT * 4)->get_tree();
p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE)); p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_fetch_and_add_4", this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_fetch_and_add_4",
NULL, build_function_type_list(t, p, t, NULL_TREE), NULL, build_function_type_list(t, p, t, NULL_TREE),
false, false); false, false);
t = this->integer_type(BITS_PER_UNIT * 8, 1)->get_tree(); t = this->integer_type(true, BITS_PER_UNIT * 8)->get_tree();
p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE)); p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_fetch_and_add_8", this->define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_fetch_and_add_8",
NULL, build_function_type_list(t, p, t, NULL_TREE), NULL, build_function_type_list(t, p, t, NULL_TREE),