Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 273577) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -4df7c8d7af894ee93f50c3a50debdcf4e369a2c6 +e242929304e7a524ced56dc94605bbf6d83e6489 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: gcc/go/gofrontend/gogo.cc =================================================================== --- gcc/go/gofrontend/gogo.cc (revision 273564) +++ gcc/go/gofrontend/gogo.cc (working copy) @@ -5109,6 +5109,8 @@ int Mark_inline_candidates::function(Named_object* no) { Function* func = no->func_value(); + if ((func->pragmas() & GOPRAGMA_NOINLINE) != 0) + return TRAVERSE_CONTINUE; int budget = budget_heuristic; Inline_within_budget iwb(&budget); func->block()->traverse(&iwb); @@ -5138,6 +5140,8 @@ Mark_inline_candidates::type(Type* t) Named_object* no = *p; go_assert(no->is_function()); Function *func = no->func_value(); + if ((func->pragmas() & GOPRAGMA_NOINLINE) != 0) + continue; int budget = budget_heuristic; Inline_within_budget iwb(&budget); func->block()->traverse(&iwb);