From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by sourceware.org (Postfix) with ESMTPS id 923B0385841A for ; Tue, 30 Aug 2022 18:54:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 923B0385841A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x530.google.com with SMTP id r4so15425132edi.8 for ; Tue, 30 Aug 2022 11:54:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=PFcXsxWpGa9I9k6l7aKaDuGLBLeiLolh/QHsOQdn5Vo=; b=PwvarjJRbxf5qLHZHVTRczdJ5i88UwSjR1zKpBabKYkzFiKfzYYE5IPRtQcx+8dStU dORLw+vegwDuTMoSzkAlc0XwwzQK484LQx6n+tJfN4BJIxwSGZKr6/DcM/ziIKiB7fE9 R/h2sJu044/6uEeQrj4TUB93yLYUhrE6Q0u28kqqD536Gs/JaqQH8waruSz8MyfJu47+ Cdy0t4wQTEhqV48gH/5BSqzQhoZRW/hHGRLOgPncf8lvcHv+KTUUN7SYPhtL5Pbqv5Ci d/QHClZHpNAlmIHnLRVWlZ14L6WJZoF859CUYvSZ0MGeC5gJW3ObpDNJSMAKTGgAtuC0 MQEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=PFcXsxWpGa9I9k6l7aKaDuGLBLeiLolh/QHsOQdn5Vo=; b=6I2uAeN85xbXyT125IGSmAELKVF/6dZ5ncNkvO/aHY+nO4zFmHf0YFSYtVU7sV+LPx 69tDoi+X/aRWp4y90UZOxiOLrXwzsSECGFn3R/ed4NDp4VcYA2zgEjHC+ZHHkQaj2XQQ 8Xznv3Zv/c1D4ahcxQMnCViVe0M23VeWAqHIi9QMynXE/Z6VpgCAJyijGnvS68HH08Ti AIgfG8J3xu8eR6QgMZDoelAKbX2Z24XMtUNrZoDyVpqcAZsNJ7sX1OfQIC1P0qh5PyaD HSpxRtKgzAS7l4Z1vdoIylpsnzto2hKLE3kyQNwuMSj6lW6BVAaTFPpSH9Ufi5yXd1ZI HqWQ== X-Gm-Message-State: ACgBeo2Zur/QIlpEXi/PcBlLn4kGTc5q7KWXRZKh5qJANOdZoGRFt9ZO an3yDVbwvSzoMlny051wz9mP95h/2P1ALKaR5RCprl2L X-Google-Smtp-Source: AA6agR4aSHHk3n8w0SX+GId6TzZZ13+e7IOyt5LC1UpKoZmjfhX7SXfdqAtEZiJP3UE1fohAT7uyOKE3a/uI8hYRKh8= X-Received: by 2002:a05:6402:2694:b0:448:86a9:b6af with SMTP id w20-20020a056402269400b0044886a9b6afmr7705210edd.218.1661885677285; Tue, 30 Aug 2022 11:54:37 -0700 (PDT) MIME-Version: 1.0 References: <20220830120743.1072319-1-adhemerval.zanella@linaro.org> In-Reply-To: <20220830120743.1072319-1-adhemerval.zanella@linaro.org> From: Noah Goldstein Date: Tue, 30 Aug 2022 11:54:26 -0700 Message-ID: Subject: Re: [PATCH] nptl: x86_64: Use same code for CURRENT_STACK_FRAME and stackinfo_get_sp To: Adhemerval Zanella Cc: GNU C Library Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Tue, Aug 30, 2022 at 5:08 AM Adhemerval Zanella via Libc-alpha wrote: > > It avoids the possible warning of uninitialized 'frame' variable when > building with clang: > > ../sysdeps/nptl/jmp-unwind.c:27:42: error: variable 'frame' is > uninitialized when used here [-Werror,-Wuninitialized] > __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME); > > The resulting code is similar to CURRENT_STACK_FRAME. > > Checked on x86_64-linux-gnu. > --- > sysdeps/x86/nptl/pthreaddef.h | 4 +++- > sysdeps/x86_64/stackinfo.h | 4 +++- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/sysdeps/x86/nptl/pthreaddef.h b/sysdeps/x86/nptl/pthreaddef.h > index 63fdbcb27c..7df65931a3 100644 > --- a/sysdeps/x86/nptl/pthreaddef.h > +++ b/sysdeps/x86/nptl/pthreaddef.h > @@ -42,7 +42,9 @@ > #ifdef __x86_64__ > /* The frame pointer is not usable. */ > # define CURRENT_STACK_FRAME \ > - ({ register char *frame __asm__("rsp"); frame; }) > + ({ register void * p__ __asm__(RSP_REG); \ > + asm volatile("" : "=r" (p__)); \ > + p__; }) > #else > # define CURRENT_STACK_FRAME __builtin_frame_address (0) > #endif > diff --git a/sysdeps/x86_64/stackinfo.h b/sysdeps/x86_64/stackinfo.h > index 34c9d0b576..7354632132 100644 > --- a/sysdeps/x86_64/stackinfo.h > +++ b/sysdeps/x86_64/stackinfo.h > @@ -40,7 +40,9 @@ > for which they need to act as barriers as well, hence the additional > (unnecessary) parameters. */ > #define stackinfo_get_sp() \ > - ({ void *p__; asm volatile ("mov %%" RSP_REG ", %0" : "=r" (p__)); p__; }) > + ({ register void * p__ __asm__(RSP_REG); \ > + asm volatile("" : "=r" (p__)); \ > + p__; }) This change addresses a different issue. Maybe two separate commits? Otherwise LGTM. > #define stackinfo_sub_sp(ptr) \ > ({ ptrdiff_t d__; \ > asm volatile ("sub %%" RSP_REG " , %0" : "=r" (d__) : "0" (ptr)); \ > -- > 2.34.1 >