From nobody Wed Oct 20 01:04:31 2021 X-Original-To: freebsd-ports-bugs@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id AC6F118076A1 for ; Wed, 20 Oct 2021 01:05:37 +0000 (UTC) (envelope-from flintnpyrite@gmail.com) Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HYsqN72xXz3Qmv for ; Wed, 20 Oct 2021 01:05:36 +0000 (UTC) (envelope-from flintnpyrite@gmail.com) Received: by mail-qv1-xf33.google.com with SMTP id n12so1146774qvk.3 for ; Tue, 19 Oct 2021 18:05:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=4Bf77BESRaN6Nf4nYTjTXkL6XqsdgWYK5jANVP5hYXo=; b=qXHOdFXIqZ4rlN8XNlUMP5kKGrdwbcV+tny8LLbwxLA0zzz9wrniwI/wh+lgDX8J8T ZhWXQBJ7EQ36h6IiTbAAHfnlIRVQo/az7//sEP2cnAeCMHzzII0AnIY/iYZUr/gr19Kg jnpaSLMefkyfrmVXSzeCR/WZaWYyJdHEDs+mqYpa2IwcVD2754L1hVFXd3Cs6l68clvv K1EseeJ6U4+n3gQVB6+mZaaHeZXK1ZLBV2+9Jo3OliHnZ6jT3LXYhK8vFqMcheMwh1Sn PWtsZo1A5BQcoI9l8RbABSrM8aB/EXpw3nQ1JGAkcTEAEYd6hS9ujfRX8c/8p/FnXgo9 wQRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=4Bf77BESRaN6Nf4nYTjTXkL6XqsdgWYK5jANVP5hYXo=; b=PIyXB+BDhNjUnO8NmOZLDMQBgV99PhHwcxBwleSZUVDmN35y4kl3y1EGuYRQWHW3g6 HXCptwi9sJgSHTah6jmXMXX1yjo6gVI2TmB/oSYijb4BwU/z7Wsi/wE30z+Xb7oBI3cQ sKTyVYlvUMyG3N5KIFyPoP3nY+ixuAz4C7+5EwYg9N9YpE1Nya76M3X14T2E4hkF++mt 5+WtUMAPS+/xAG5/nUymkGqxw2Y/1cN5AvV5wUIT+ga2FHbgm4Wiak7IarkiIPplOjlo WiDo2v+VN8xZiD8AB0KyinwESAgtc6zgCQ8+Mj89aLi1cTqh7rxLn6HZ7rCp/fYhgM+9 PGVw== X-Gm-Message-State: AOAM530fegLpTkuLjobiOac1QAKL+KF6ZU9dsk/4p9UnvkLynbGCnwPF GcbpXFheSHE87x0sFsN1j+hWTYiKO0dzc8EqpNnHxDUHuyk= X-Google-Smtp-Source: ABdhPJyAAkEI8B/Y8Ge8858/q0PPaq/+zZpw8glvLC9BW69S5VDATvjrsas6XKfDdpMDrvuonSCkb7Xf9VezohM8z7Q= X-Received: by 2002:a05:6214:5282:: with SMTP id kj2mr3242441qvb.22.1634691936327; Tue, 19 Oct 2021 18:05:36 -0700 (PDT) List-Id: Ports bug reports List-Archive: https://lists.freebsd.org/archives/freebsd-ports-bugs List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports-bugs@freebsd.org X-BeenThere: freebsd-ports-bugs@freebsd.org MIME-Version: 1.0 From: flint pyrite Date: Tue, 19 Oct 2021 19:04:31 -0600 Message-ID: Subject: gcc and clang assignment compiler bug? To: freebsd-ports-bugs@freebsd.org Content-Type: multipart/alternative; boundary="0000000000002e9a2e05cebe60ca" X-Rspamd-Queue-Id: 4HYsqN72xXz3Qmv X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20210112 header.b=qXHOdFXI; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of flintnpyrite@gmail.com designates 2607:f8b0:4864:20::f33 as permitted sender) smtp.mailfrom=flintnpyrite@gmail.com X-Spamd-Result: default: False [-0.99 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.998]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20210112]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-ports-bugs@freebsd.org]; TO_DN_NONE(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-0.99)[-0.989]; MID_RHS_MATCH_FROMTLD(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::f33:from]; NEURAL_SPAM_SHORT(1.00)[1.000]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; SUBJECT_ENDS_QUESTION(1.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-ThisMailContainsUnwantedMimeParts: Y --0000000000002e9a2e05cebe60ca Content-Type: text/plain; charset="UTF-8" Weird. I can't figure it out so I am putting it out there. I have sample code and debug output that shows the issue. I am not sure why the difference between the two since the buffer variable is a pointer to data on the heap? Is this a compiler bug? One generates movabs and the other a mov instruction. /* $ cc -g t.c $ ./a.out Segmentation fault (core dumped) $ gdb a.out a.out.core (gdb) bt #0 0x00000000002018e6 in test2 () at t.c:50 #1 0x000000000020193e in main () at t.c:60 (gdb) list 46 void test2() 47 { 48 char *buffer= "Example string\r\n"; 49 50 *buffer= 0; 51 buffer[0]= 'E'; 52 } (gdb) disassemble Dump of assembler code for function test2: 0x00000000002018d0 <+0>: push %rbp 0x00000000002018d1 <+1>: mov %rsp,%rbp 0x00000000002018d4 <+4>: movabs $0x200500,%rax 0x00000000002018de <+14>: mov %rax,-0x8(%rbp) 0x00000000002018e2 <+18>: mov -0x8(%rbp),%rax => 0x00000000002018e6 <+22>: movb $0x0,(%rax) 0x00000000002018e9 <+25>: mov -0x8(%rbp),%rax 0x00000000002018ed <+29>: movb $0x45,(%rax) 0x00000000002018f0 <+32>: pop %rbp 0x00000000002018f1 <+33>: ret (gdb) disassemble test1 Dump of assembler code for function test1: 0x0000000000201900 <+0>: push %rbp 0x0000000000201901 <+1>: mov %rsp,%rbp 0x0000000000201904 <+4>: mov 0x200520,%rax 0x000000000020190c <+12>: mov %rax,-0x20(%rbp) 0x0000000000201910 <+16>: mov 0x200528,%rax 0x0000000000201918 <+24>: mov %rax,-0x18(%rbp) 0x000000000020191c <+28>: mov 0x200530,%cl 0x0000000000201923 <+35>: mov %cl,-0x10(%rbp) 0x0000000000201926 <+38>: movb $0x0,-0x20(%rbp) 0x000000000020192a <+42>: movb $0x45,-0x20(%rbp) 0x000000000020192e <+46>: pop %rbp 0x000000000020192f <+47>: ret 0x000000000020192f <+47>: ret */ /* bad */ void test2() { char *buffer= "Example string\r\n"; *buffer= 0; buffer[0]= 'E'; } /* good */ void test1() { char buffer[]= {"Example string\r\n"}; *buffer= 0; buffer[0]= 'E'; } int main() { test1(); test2(); } $ clang -v FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) Target: x86_64-unknown-freebsd13.0 Thread model: posix InstalledDir: /usr/bin $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/lto-wrapper Target: x86_64-portbld-freebsd13.0 Configured with: /wrkdirs/usr/ports/lang/gcc10/work/gcc-10.3.0/configure --enable-multilib --with-build-config=bootstrap-debug --disable-nls --enable-gnu-indirect-function --enable-plugin --libdir=/usr/local/lib/gcc10 --libexecdir=/usr/local/libexec/gcc10 --program-suffix=10 --with-as=/usr/local/bin/as --with-gmp=/usr/local --with-gxx-include-dir=/usr/local/lib/gcc10/include/c++/ --with-ld=/usr/local/bin/ld --with-pkgversion='FreeBSD Ports Collection' --with-system-zlib --without-zstd --enable-languages=c,c++,objc,fortran --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/share/info/gcc10 --build=x86_64-portbld-freebsd13.0 Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.3.0 (FreeBSD Ports Collection) $ uname -a FreeBSD tabitha.markjolesen.com 13.0-RELEASE-p3 FreeBSD 13.0-RELEASE-p3 #0: Tue Jun 29 19:46:20 UTC 2021 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 --0000000000002e9a2e05cebe60ca--