From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2116) id 16BEE388A02F; Thu, 10 Nov 2022 00:08:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 16BEE388A02F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668038939; bh=X22rpzOVNrsgHISXTP5mYDjAxrIOW6YUtm+Lvi2nGWg=; h=From:To:Subject:Date:From; b=IL5wHx4nScg2lRv23KFYRsB2peGn988gk80AOqb5S1+pkbmpEg+1bNrG/S2RSwxnI 1nEMkNRhyY1qHtGVh4reWn7Q85vc9CxHVumqWn/urHYOg0i+pHsDqEfFD+xI8fUPUQ fGvPp1HtuSa3zZaRhKNcq0JG7vm+HtPEKwN+HD/E= MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Ian Lance Taylor To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-3868] go: don't crash if __atomic_fetch_add functions are used X-Act-Checkin: gcc X-Git-Author: Ian Lance Taylor X-Git-Refname: refs/heads/master X-Git-Oldrev: 965ce1ba392ca03c746cabb9ba73e66258557dcb X-Git-Newrev: 219f82070903625d6bd8865b5ecb5f944bcee871 Message-Id: <20221110000859.16BEE388A02F@sourceware.org> Date: Thu, 10 Nov 2022 00:08:59 +0000 (GMT) List-Id: https://gcc.gnu.org/g:219f82070903625d6bd8865b5ecb5f944bcee871 commit r13-3868-g219f82070903625d6bd8865b5ecb5f944bcee871 Author: Ian Lance Taylor Date: Wed Nov 9 16:05:08 2022 -0800 go: don't crash if __atomic_fetch_add functions are used The Go frontend only generates __atomic_add_fetch, but in some cases thost calls become __atomic_fetch_add. Patch originally by Marc Poulhiès. PR target/107581 * go-gcc.cc (Gcc_backend::Gcc_backend): Define __atomic_fetch_add_{4,8}. Diff: --- gcc/go/go-gcc.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc index 1ba7206caeb..6e5887aecab 100644 --- a/gcc/go/go-gcc.cc +++ b/gcc/go/go-gcc.cc @@ -886,16 +886,20 @@ Gcc_backend::Gcc_backend() uint32_type_node, integer_type_node, NULL_TREE); - this->define_builtin(BUILT_IN_ATOMIC_ADD_FETCH_4, "__atomic_add_fetch_4", NULL, - t, 0); + this->define_builtin(BUILT_IN_ATOMIC_ADD_FETCH_4, "__atomic_add_fetch_4", + NULL, t, 0); + this->define_builtin(BUILT_IN_ATOMIC_FETCH_ADD_4, "__atomic_fetch_add_4", + NULL, t, 0); t = build_function_type_list(uint64_type_node, ptr_type_node, uint64_type_node, integer_type_node, NULL_TREE); - this->define_builtin(BUILT_IN_ATOMIC_ADD_FETCH_8, "__atomic_add_fetch_8", NULL, - t, 0); + this->define_builtin(BUILT_IN_ATOMIC_ADD_FETCH_8, "__atomic_add_fetch_8", + NULL, t, 0); + this->define_builtin(BUILT_IN_ATOMIC_FETCH_ADD_8, "__atomic_fetch_add_8", + NULL, t, 0); t = build_function_type_list(unsigned_char_type_node, ptr_type_node,