From owner-svn-src-vendor@freebsd.org Mon Dec 16 18:41:02 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C1D901CB8A4; Mon, 16 Dec 2019 18:41:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47c98G4pbGz4B0d; Mon, 16 Dec 2019 18:41:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 865191752; Mon, 16 Dec 2019 18:41:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBGIf2wQ091273; Mon, 16 Dec 2019 18:41:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBGIf2V8091272; Mon, 16 Dec 2019 18:41:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912161841.xBGIf2V8091272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 16 Dec 2019 18:41:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355814 - in vendor/llvm-project: . master X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project: . master X-SVN-Commit-Revision: 355814 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Dec 2019 18:41:02 -0000 Author: dim Date: Mon Dec 16 18:41:02 2019 New Revision: 355814 URL: https://svnweb.freebsd.org/changeset/base/355814 Log: Add new vendor area for llvm-project GitHub imports. Added: vendor/llvm-project/ vendor/llvm-project/master/ From owner-svn-src-vendor@freebsd.org Mon Dec 16 18:43:58 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 641291CBB4C; Mon, 16 Dec 2019 18:43:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47c9Cf1wt5z4BTh; Mon, 16 Dec 2019 18:43:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 233811800; Mon, 16 Dec 2019 18:43:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBGIhwR9096614; Mon, 16 Dec 2019 18:43:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBGIhwDB096613; Mon, 16 Dec 2019 18:43:58 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912161843.xBGIhwDB096613@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 16 Dec 2019 18:43:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355815 - vendor/llvm-project/release-9.x X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/release-9.x X-SVN-Commit-Revision: 355815 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Dec 2019 18:43:58 -0000 Author: dim Date: Mon Dec 16 18:43:57 2019 New Revision: 355815 URL: https://svnweb.freebsd.org/changeset/base/355815 Log: Create release-9.x branch off master. Added: vendor/llvm-project/release-9.x/ - copied from r355814, vendor/llvm-project/master/ From owner-svn-src-vendor@freebsd.org Mon Dec 16 22:05:05 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D1D051CFDBE; Mon, 16 Dec 2019 22:05:05 +0000 (UTC) (envelope-from phil@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47cFgj4Cq4z4NWb; Mon, 16 Dec 2019 22:05:05 +0000 (UTC) (envelope-from phil@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C2133FA0; Mon, 16 Dec 2019 22:05:05 +0000 (UTC) (envelope-from phil@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBGM55JH014658; Mon, 16 Dec 2019 22:05:05 GMT (envelope-from phil@FreeBSD.org) Received: (from phil@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBGM55fw014657; Mon, 16 Dec 2019 22:05:05 GMT (envelope-from phil@FreeBSD.org) Message-Id: <201912162205.xBGM55fw014657@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: phil set sender to phil@FreeBSD.org using -f From: Phil Shafer Date: Mon, 16 Dec 2019 22:05:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355826 - head/lib/libxo head/lib/libxo/encoder/csv head/lib/libxo/libxo head/lib/libxo/tests head/lib/libxo/tests/encoder head/usr.bin/xo vendor/Juniper/libxo X-SVN-Group: vendor X-SVN-Commit-Author: phil X-SVN-Commit-Paths: head/lib/libxo head/lib/libxo/encoder/csv head/lib/libxo/libxo head/lib/libxo/tests head/lib/libxo/tests/encoder head/usr.bin/xo vendor/Juniper/libxo X-SVN-Commit-Revision: 355826 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Dec 2019 22:05:05 -0000 Author: phil Date: Mon Dec 16 22:05:03 2019 New Revision: 355826 URL: https://svnweb.freebsd.org/changeset/base/355826 Log: Allow proper builds of libxo's CSV encoder: - Move libxo.a build to subdirectory (lib/libxo/libxo/Makefile) - Add .WAIT target to delay encoder build til after libxo - Use FILES to install encoder library as csv.enc - Update import script to put xo_config.h in new location Modified: vendor/Juniper/libxo/.svnignore vendor/Juniper/libxo/import.sh Directory Properties: vendor/Juniper/libxo/ (props changed) Changes in other areas also in this revision: Added: head/lib/libxo/libxo/ head/lib/libxo/libxo/Makefile (contents, props changed) head/lib/libxo/libxo/xo_config.h - copied unchanged from r355672, head/lib/libxo/xo_config.h Deleted: head/lib/libxo/xo_config.h Modified: head/lib/libxo/Makefile head/lib/libxo/encoder/csv/Makefile head/lib/libxo/tests/Makefile head/lib/libxo/tests/encoder/Makefile head/usr.bin/xo/Makefile Modified: vendor/Juniper/libxo/.svnignore ============================================================================== --- vendor/Juniper/libxo/.svnignore Mon Dec 16 21:52:12 2019 (r355825) +++ vendor/Juniper/libxo/.svnignore Mon Dec 16 22:05:03 2019 (r355826) @@ -1,6 +1,6 @@ -libxo-0.4.6 -libxo-0.4.7 -libxo-0.6.0 -libxo-0.6.1 -libxo-0.6.2 +libxo-1.0.2 +libxo-1.0.4 +libxo-1.1.0 +libxo-1.3.0 +libxo-1.3.1 tag.sh Modified: vendor/Juniper/libxo/import.sh ============================================================================== --- vendor/Juniper/libxo/import.sh Mon Dec 16 21:52:12 2019 (r355825) +++ vendor/Juniper/libxo/import.sh Mon Dec 16 22:05:03 2019 (r355826) @@ -290,7 +290,7 @@ run "build for real" \ # Move over and build the source tree Cd $HEAD -run "copying xo_config.h" "(echo '/* \$FreeBSD\$ */' ; cat $CWD/dist/build/libxo/xo_config.h ) > $HEAD/lib/libxo/xo_config.h" +run "copying xo_config.h" "(echo '/* \$FreeBSD\$ */' ; cat $CWD/dist/build/libxo/xo_config.h ) > $HEAD/lib/libxo/libxo/xo_config.h" run "copying add.man" "(echo '.\\\" \$FreeBSD\$' ; cat $CWD/dist/build/libxo/add.man ) > $HEAD/lib/libxo/add.man" run "copying xohtml.sh" "(echo '#!/bin/sh' ; echo '# \$FreeBSD\$' ; cat $CWD/dist/build/xohtml/xohtml.sh ) > $HEAD/usr.bin/xohtml/xohtml.sh" From owner-svn-src-vendor@freebsd.org Thu Dec 19 00:11:19 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 831E11C9FAD; Thu, 19 Dec 2019 00:11:19 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47dXNR2qWCz3QsN; Thu, 19 Dec 2019 00:11:19 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4222A61BF; Thu, 19 Dec 2019 00:11:19 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBJ0BJ4D093551; Thu, 19 Dec 2019 00:11:19 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBJ0BISS093550; Thu, 19 Dec 2019 00:11:18 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201912190011.xBJ0BISS093550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 19 Dec 2019 00:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355890 - vendor/libpcap/dist X-SVN-Group: vendor X-SVN-Commit-Author: cy X-SVN-Commit-Paths: vendor/libpcap/dist X-SVN-Commit-Revision: 355890 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Dec 2019 00:11:19 -0000 Author: cy Date: Thu Dec 19 00:11:18 2019 New Revision: 355890 URL: https://svnweb.freebsd.org/changeset/base/355890 Log: Fix libpcap issue #893: check for invalid IPv4 addresses. This fixes errors such as: tcpdump -i lagg0 net 999.999.999.999 This was originally discovered on a Red Hat 7.7 server and verified to also be a bug on FreeBSD. Obtained from: https://github.com/the-tcpdump-group/libpcap/commit/ \ 07070918d5e81a515315b395f334e52589fe0fb Fixed by: https://github.com/guyharris Modified: vendor/libpcap/dist/gencode.c vendor/libpcap/dist/nametoaddr.c Modified: vendor/libpcap/dist/gencode.c ============================================================================== --- vendor/libpcap/dist/gencode.c Wed Dec 18 23:00:56 2019 (r355889) +++ vendor/libpcap/dist/gencode.c Thu Dec 19 00:11:18 2019 (r355890) @@ -6955,11 +6955,15 @@ gen_mcode(compiler_state_t *cstate, const char *s1, co return (NULL); nlen = __pcap_atoin(s1, &n); + if (nlen < 0) + bpf_error(cstate, "invalid IPv4 address '%s'", s1); /* Promote short ipaddr */ n <<= 32 - nlen; if (s2 != NULL) { mlen = __pcap_atoin(s2, &m); + if (mlen < 0) + bpf_error(cstate, "invalid IPv4 address '%s'", s2); /* Promote short ipaddr */ m <<= 32 - mlen; if ((n & ~m) != 0) @@ -7017,8 +7021,11 @@ gen_ncode(compiler_state_t *cstate, const char *s, bpf vlen = __pcap_atodn(s, &v); if (vlen == 0) bpf_error(cstate, "malformed decnet address '%s'", s); - } else + } else { vlen = __pcap_atoin(s, &v); + if (vlen < 0) + bpf_error(cstate, "invalid IPv4 address '%s'", s); + } switch (q.addr) { Modified: vendor/libpcap/dist/nametoaddr.c ============================================================================== --- vendor/libpcap/dist/nametoaddr.c Wed Dec 18 23:00:56 2019 (r355889) +++ vendor/libpcap/dist/nametoaddr.c Thu Dec 19 00:11:18 2019 (r355890) @@ -653,8 +653,15 @@ __pcap_atoin(const char *s, bpf_u_int32 *addr) len = 0; for (;;) { n = 0; - while (*s && *s != '.') + while (*s && *s != '.') { + if (n > 25) { + /* The result will be > 255 */ + return -1; + } n = n * 10 + *s++ - '0'; + } + if (n > 255) + return -1; *addr <<= 8; *addr |= n & 0xff; len += 8; From owner-svn-src-vendor@freebsd.org Thu Dec 19 00:24:01 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20D151CAD4B; Thu, 19 Dec 2019 00:24:01 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47dXg36JNkz3x73; Thu, 19 Dec 2019 00:23:59 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id hjbei3AXukqGXhjbgiVtqW; Wed, 18 Dec 2019 17:23:57 -0700 X-Authority-Analysis: v=2.3 cv=c/jVvi1l c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=8nJEP1OIZ-IA:10 a=pxVhFHJ0LMsA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=YNsFZNDiP1fVyXoYMFYA:9 a=wPNLvfGTeEIA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id 137E94AD; Wed, 18 Dec 2019 16:23:54 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id xBJ0NY2F045698; Wed, 18 Dec 2019 16:23:34 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id xBJ0NYVB045695; Wed, 18 Dec 2019 16:23:34 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201912190023.xBJ0NYVB045695@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Philip Paeps cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: Re: svn commit: r353141 - in vendor/libpcap/dist: . cmake/Modules doc missing msdos pcap rpcapd testprogs In-reply-to: <201910060426.x964QcsS053813@repo.freebsd.org> References: <201910060426.x964QcsS053813@repo.freebsd.org> Comments: In-reply-to Philip Paeps message dated "Sun, 06 Oct 2019 04:26:38 -0000." Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Date: Wed, 18 Dec 2019 16:23:34 -0800 X-CMAE-Envelope: MS4wfJCIiBPiaZ7nVv5ITTIJDlq5oKEUJuj4sXzBc3brAVm9AXYN3NG7bdgItGM5cpIbDljVXTTk154C0mgBXbf1vMblO4MXmyvz765wC/WW6PBuzGEmprlJ kLEuzijJQAQVEEpaHkNQCMtugRVCrx3hT0WUFEtban5o7LX+jblUliku0m6BS1o8GdYxZzlV3y4EMiKDRsEDcvp7AruGNNGPfQFlKUJjBJ+gOOdkyO1qkv56 NNswyz93Y5N2fR1V5aWMmpe/jDfwuYFfAWRWZVm+1dS01OBf8vL+y+7PGdMRP0YQ X-Rspamd-Queue-Id: 47dXg36JNkz3x73 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.134.12) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-4.10 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; RWL_MAILSPIKE_GOOD(0.00)[12.134.59.64.rep.mailspike.net : 127.0.0.18]; MV_CASE(0.50)[]; REPLYTO_EQ_FROM(0.00)[]; IP_SCORE(-2.40)[ip: (-6.43), ipnet: 64.59.128.0/20(-3.09), asn: 6327(-2.40), country: CA(-0.09)]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[12.134.59.64.list.dnswl.org : 127.0.5.1] X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Dec 2019 00:24:01 -0000 In message <201910060426.x964QcsS053813@repo.freebsd.org>, Philip Paeps writes: > Author: philip > Date: Sun Oct 6 04:26:37 2019 > New Revision: 353141 > URL: https://svnweb.freebsd.org/changeset/base/353141 > > Log: > Import libpcap 1.9.1 > Hi Phillip, Is it possible to MFV this, tcpdump (r353143) and r355890 (which I just imported into vendor)? -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-vendor@freebsd.org Thu Dec 19 03:16:51 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22F931D2B6F; Thu, 19 Dec 2019 03:16:51 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47dcVW02vfz49HM; Thu, 19 Dec 2019 03:16:51 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from weatherwax.trouble.is (weatherwax.trouble.is [46.235.227.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "weatherwax.trouble.is", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: philip/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id DA35C18E39; Thu, 19 Dec 2019 03:16:50 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from rincewind.trouble.is (rincewind.trouble.is [IPv6:2a01:4f9:2a:1715::1:1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "rincewind.trouble.is", Issuer "Let's Encrypt Authority X3" (verified OK)) by weatherwax.trouble.is (Postfix) with ESMTPS id 47dcVT0lmCz13HP; Thu, 19 Dec 2019 03:16:49 +0000 (UTC) Received: by rincewind.trouble.is (Postfix, authenticated sender philip) id 47dcVP3ybkz43LP; Thu, 19 Dec 2019 03:16:45 +0000 (UTC) From: "Philip Paeps" To: "Cy Schubert" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: Re: svn commit: r353141 - in vendor/libpcap/dist: . cmake/Modules doc missing msdos pcap rpcapd testprogs Date: Thu, 19 Dec 2019 11:16:39 +0800 X-Clacks-Overhead: GNU Terry Pratchett X-Mailer: MailMate (1.13.1r5671) Message-ID: <7AC7EB74-B8AC-4BD8-8492-AAC7014A31FC@freebsd.org> In-Reply-To: <201912190023.xBJ0NYVB045695@slippy.cwsent.com> References: <201910060426.x964QcsS053813@repo.freebsd.org> <201912190023.xBJ0NYVB045695@slippy.cwsent.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Dec 2019 03:16:51 -0000 On 2019-12-19 08:23:34 (+0800), Cy Schubert wrote: > In message <201910060426.x964QcsS053813@repo.freebsd.org>, Philip > Paeps > writes: >> Author: philip >> Date: Sun Oct 6 04:26:37 2019 >> New Revision: 353141 >> URL: https://svnweb.freebsd.org/changeset/base/353141 >> >> Log: >> Import libpcap 1.9.1 >> > > Hi Phillip, > > Is it possible to MFV this, tcpdump (r353143) and r355890 (which I > just > imported into vendor)? Yes! This completely slipped my mind when I did the vendor import a few weeks ago. I got distracted by other things. Apologies. Philip -- Philip Paeps Senior Reality Engineer Alternative Enterprises From owner-svn-src-vendor@freebsd.org Fri Dec 20 18:23:50 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB9181E06D3; Fri, 20 Dec 2019 18:23:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fcZZ625Mz4GJC; Fri, 20 Dec 2019 18:23:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B01002D3D; Fri, 20 Dec 2019 18:23:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKINoZw090253; Fri, 20 Dec 2019 18:23:50 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKINoMG090252; Fri, 20 Dec 2019 18:23:50 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912201823.xBKINoMG090252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 18:23:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355939 - vendor/llvm-project/release-8.x X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/release-8.x X-SVN-Commit-Revision: 355939 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 18:23:51 -0000 Author: dim Date: Fri Dec 20 18:23:50 2019 New Revision: 355939 URL: https://svnweb.freebsd.org/changeset/base/355939 Log: Create release-8.x branch off master. Added: vendor/llvm-project/release-8.x/ - copied from r355938, vendor/llvm-project/master/ From owner-svn-src-vendor@freebsd.org Fri Dec 20 20:44:59 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 948081E2D36; Fri, 20 Dec 2019 20:44:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fgjR3PWmz4N92; Fri, 20 Dec 2019 20:44:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6BB8E48F6; Fri, 20 Dec 2019 20:44:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKKixig073750; Fri, 20 Dec 2019 20:44:59 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKKixWI073749; Fri, 20 Dec 2019 20:44:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202044.xBKKixWI073749@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 20:44:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355944 - in vendor/llvm-project/master: clang compiler-rt libcxx libunwind lld lldb llvm openmp X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/master: clang compiler-rt libcxx libunwind lld lldb llvm openmp X-SVN-Commit-Revision: 355944 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 20:44:59 -0000 Author: dim Date: Fri Dec 20 20:44:58 2019 New Revision: 355944 URL: https://svnweb.freebsd.org/changeset/base/355944 Log: Copy llvm vendor/*/dist to vendor/llvm-project/master This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Added: vendor/llvm-project/master/clang/ - copied from r355943, vendor/clang/dist/ vendor/llvm-project/master/compiler-rt/ - copied from r355943, vendor/compiler-rt/dist/ vendor/llvm-project/master/libcxx/ - copied from r355943, vendor/libc++/dist/ vendor/llvm-project/master/libunwind/ - copied from r355943, vendor/llvm-libunwind/dist/ vendor/llvm-project/master/lld/ - copied from r355943, vendor/lld/dist/ vendor/llvm-project/master/lldb/ - copied from r355943, vendor/lldb/dist/ vendor/llvm-project/master/llvm/ - copied from r355943, vendor/llvm/dist/ vendor/llvm-project/master/openmp/ - copied from r355943, vendor/llvm-openmp/dist/ From owner-svn-src-vendor@freebsd.org Fri Dec 20 20:46:11 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B43331E2DA6; Fri, 20 Dec 2019 20:46:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fgkq47LJz4NGv; Fri, 20 Dec 2019 20:46:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 88C0F48F7; Fri, 20 Dec 2019 20:46:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKKkBLr073867; Fri, 20 Dec 2019 20:46:11 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKKkBuX073866; Fri, 20 Dec 2019 20:46:11 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202046.xBKKkBuX073866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 20:46:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355945 - in vendor/llvm-project/release-9.x: clang compiler-rt libcxx libunwind lld lldb llvm openmp X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/release-9.x: clang compiler-rt libcxx libunwind lld lldb llvm openmp X-SVN-Commit-Revision: 355945 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 20:46:11 -0000 Author: dim Date: Fri Dec 20 20:46:11 2019 New Revision: 355945 URL: https://svnweb.freebsd.org/changeset/base/355945 Log: Copy llvm vendor/*/dist-release_90 to vendor/llvm-project/release-9.x This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Added: vendor/llvm-project/release-9.x/clang/ - copied from r355943, vendor/clang/dist-release_90/ vendor/llvm-project/release-9.x/compiler-rt/ - copied from r355943, vendor/compiler-rt/dist-release_90/ vendor/llvm-project/release-9.x/libcxx/ - copied from r355943, vendor/libc++/dist-release_90/ vendor/llvm-project/release-9.x/libunwind/ - copied from r355943, vendor/llvm-libunwind/dist-release_90/ vendor/llvm-project/release-9.x/lld/ - copied from r355943, vendor/lld/dist-release_90/ vendor/llvm-project/release-9.x/lldb/ - copied from r355943, vendor/lldb/dist-release_90/ vendor/llvm-project/release-9.x/llvm/ - copied from r355943, vendor/llvm/dist-release_90/ vendor/llvm-project/release-9.x/openmp/ - copied from r355943, vendor/llvm-openmp/dist-release_90/ From owner-svn-src-vendor@freebsd.org Fri Dec 20 20:51:17 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4AD8C1E2FF6; Fri, 20 Dec 2019 20:51:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fgrj1JXSz4NjK; Fri, 20 Dec 2019 20:51:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 282814951; Fri, 20 Dec 2019 20:51:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKKpHhk077064; Fri, 20 Dec 2019 20:51:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKKpHxE077063; Fri, 20 Dec 2019 20:51:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202051.xBKKpHxE077063@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 20:51:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355947 - in vendor/llvm-project/release-8.x: clang compiler-rt libcxx libunwind lld lldb llvm openmp X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/release-8.x: clang compiler-rt libcxx libunwind lld lldb llvm openmp X-SVN-Commit-Revision: 355947 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 20:51:17 -0000 Author: dim Date: Fri Dec 20 20:51:16 2019 New Revision: 355947 URL: https://svnweb.freebsd.org/changeset/base/355947 Log: Copy llvm vendor/*/dist-release_80 to vendor/llvm-project/release-8.x This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Added: vendor/llvm-project/release-8.x/clang/ - copied from r355945, vendor/clang/dist-release_80/ vendor/llvm-project/release-8.x/compiler-rt/ - copied from r355945, vendor/compiler-rt/dist-release_80/ vendor/llvm-project/release-8.x/libcxx/ - copied from r355945, vendor/libc++/dist-release_80/ vendor/llvm-project/release-8.x/libunwind/ - copied from r355945, vendor/llvm-libunwind/dist-release_80/ vendor/llvm-project/release-8.x/lld/ - copied from r355945, vendor/lld/dist-release_80/ vendor/llvm-project/release-8.x/lldb/ - copied from r355945, vendor/lldb/dist-release_80/ vendor/llvm-project/release-8.x/llvm/ - copied from r355945, vendor/llvm/dist-release_80/ vendor/llvm-project/release-8.x/openmp/ - copied from r355945, vendor/llvm-openmp/dist-release_80/ From owner-svn-src-vendor@freebsd.org Fri Dec 20 21:12:01 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A48211E3755; Fri, 20 Dec 2019 21:12:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fhJd4hncz4Q1s; Fri, 20 Dec 2019 21:12:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C7224E1F; Fri, 20 Dec 2019 21:12:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKLC1Ne090695; Fri, 20 Dec 2019 21:12:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKLC1xk090694; Fri, 20 Dec 2019 21:12:01 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202112.xBKLC1xk090694@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 21:12:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355950 - in vendor/llvm-project: master/compiler-rt/lib/builtins/armv6m master/lldb/source/Plugins/ExpressionParser/Go master/lldb/source/Plugins/Language/Go master/lldb/source/Plugins... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project: master/compiler-rt/lib/builtins/armv6m master/lldb/source/Plugins/ExpressionParser/Go master/lldb/source/Plugins/Language/Go master/lldb/source/Plugins/Language/Java master/lld... X-SVN-Commit-Revision: 355950 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 21:12:01 -0000 Author: dim Date: Fri Dec 20 21:12:01 2019 New Revision: 355950 URL: https://svnweb.freebsd.org/changeset/base/355950 Log: Remove empty dirs under vendor/llvm-project, which are no longer stored in git. Deleted: vendor/llvm-project/master/compiler-rt/lib/builtins/armv6m/ vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Go/ vendor/llvm-project/master/lldb/source/Plugins/Language/Go/ vendor/llvm-project/master/lldb/source/Plugins/Language/Java/ vendor/llvm-project/master/lldb/source/Plugins/Language/OCaml/ vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/Go/ vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/Java/ vendor/llvm-project/master/lldb/source/Plugins/OperatingSystem/Go/ vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/WasmRelocs/ vendor/llvm-project/master/llvm/include/llvm/MC/MCAnalysis/ vendor/llvm-project/master/llvm/lib/ExecutionEngine/JIT/ vendor/llvm-project/master/llvm/lib/MC/MCAnalysis/ vendor/llvm-project/master/llvm/lib/Target/Nios2/ vendor/llvm-project/master/llvm/lib/Target/WebAssembly/InstPrinter/ vendor/llvm-project/master/llvm/tools/llvm-mca/include/ vendor/llvm-project/master/llvm/tools/llvm-mca/lib/ vendor/llvm-project/release-8.x/clang/Driver/ vendor/llvm-project/release-8.x/clang/lib/Driver/Arch/ vendor/llvm-project/release-8.x/clang/lib/Headers/cuda/ vendor/llvm-project/release-8.x/clang/runtime/libcxx/ vendor/llvm-project/release-8.x/clang/test/Analysis/ExpectedOutputs/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.align/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.life/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/concept.qual/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.lval/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.funscope/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.scope.class/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.scope.concept/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.scope.enum/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.scope.namespace/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.scope.proto/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.scope/basic.scope.req/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.start/basic.start.term/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.stc/basic.stc.auto/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.safety/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.stc/basic.stc.inherit/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.stc/basic.stc.static/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.stc/basic.stc.thread/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.types/basic.compound/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.types/basic.fundamental/ vendor/llvm-project/release-8.x/clang/test/CXX/basic/basic.types/basic.type.qualifier/ vendor/llvm-project/release-8.x/clang/test/CXX/class.access/class.access.spec/ vendor/llvm-project/release-8.x/clang/test/CXX/class.access/class.access.virt/ vendor/llvm-project/release-8.x/clang/test/CXX/class.access/class.paths/ vendor/llvm-project/release-8.x/clang/test/CXX/class.derived/class.mi/ vendor/llvm-project/release-8.x/clang/test/CXX/class/class.mfct/class.this/ vendor/llvm-project/release-8.x/clang/test/CXX/class/class.name/ vendor/llvm-project/release-8.x/clang/test/CXX/class/class.static/class.static.mfct/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.array/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.bool/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.double/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.fpint/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.fpprom/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.func/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.integral/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.lval/ vendor/llvm-project/release-8.x/clang/test/CXX/conv/conv.rank/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.cond/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.error/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.include/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.line/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.null/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.pragma/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.pragma.op/ vendor/llvm-project/release-8.x/clang/test/CXX/cpp/cpp.replace/ vendor/llvm-project/release-8.x/clang/test/CXX/dcl.dcl/basic.namespace/namespace.alias/ vendor/llvm-project/release-8.x/clang/test/CXX/dcl.dcl/dcl.asm/ vendor/llvm-project/release-8.x/clang/test/CXX/dcl.dcl/dcl.spec/dcl.friend/ vendor/llvm-project/release-8.x/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.cv/ vendor/llvm-project/release-8.x/clang/test/CXX/dcl.decl/dcl.ambig.res/ vendor/llvm-project/release-8.x/clang/test/CXX/dcl.decl/dcl.meaning/dcl.ptr/ vendor/llvm-project/release-8.x/clang/test/CXX/depr/ vendor/llvm-project/release-8.x/clang/test/CXX/except/except.ctor/ vendor/llvm-project/release-8.x/clang/test/CXX/except/except.special/ vendor/llvm-project/release-8.x/clang/test/CXX/except/except.throw/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.add/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.bit.and/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.comma/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.eq/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.log.and/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.log.or/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.mul/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.or/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.post/expr.post.incr/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.post/expr.pseudo/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.post/expr.sub/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.post/expr.typeid/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.rel/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.shift/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.unary/expr.alignof/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.unary/expr.pre.incr/ vendor/llvm-project/release-8.x/clang/test/CXX/expr/expr.xor/ vendor/llvm-project/release-8.x/clang/test/CXX/implimits/ vendor/llvm-project/release-8.x/clang/test/CXX/intro/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.comment/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.digraph/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.header/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.key/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.literal/lex.bool/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.literal/lex.fcon/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.literal/lex.icon/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.literal/lex.literal.kinds/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.literal/lex.nullptr/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.name/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.operators/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.phases/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.ppnumber/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.separate/ vendor/llvm-project/release-8.x/clang/test/CXX/lex/lex.token/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.dcl/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.ellipsis/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.ref/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.funcs/over.match.call/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.funcs/over.match.conv/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.funcs/over.match.ctor/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.funcs/over.match.list/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.funcs/over.match.ref/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.match/over.match.viable/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.ass/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.binary/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.call/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.inc/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.ref/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.sub/ vendor/llvm-project/release-8.x/clang/test/CXX/over/over.oper/over.unary/ vendor/llvm-project/release-8.x/clang/test/CXX/special/class.cdtor/ vendor/llvm-project/release-8.x/clang/test/CXX/special/class.conv/class.conv.fct/ vendor/llvm-project/release-8.x/clang/test/CXX/special/class.init/class.expl.init/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.block/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.expr/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.iter/stmt.do/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.iter/stmt.for/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.iter/stmt.while/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.jump/ vendor/llvm-project/release-8.x/clang/test/CXX/stmt.stmt/stmt.late/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/concept/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.constrained/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.match/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.decls/temp.concept.map/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.export/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.fct.spec/temp.over/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.res/temp.dep.res/temp.dep.candidate/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.expr/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.temp/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.res/temp.inject/ vendor/llvm-project/release-8.x/clang/test/CXX/temp/temp.res/temp.nondep/ vendor/llvm-project/release-8.x/clang/test/CodeGen/include/ vendor/llvm-project/release-8.x/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr2/ vendor/llvm-project/release-8.x/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr6/ vendor/llvm-project/release-8.x/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/ vendor/llvm-project/release-8.x/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++/4.8/86_64-w64-mingw32/ vendor/llvm-project/release-8.x/clang/test/Driver/Inputs/sparc-sun-solaris2.11/ vendor/llvm-project/release-8.x/clang/test/Preprocessor/headermap-rel/ vendor/llvm-project/release-8.x/clang/tools/clang-func-mapping/ vendor/llvm-project/release-8.x/compiler-rt/lib/builtins/armv6m/ vendor/llvm-project/release-8.x/compiler-rt/lib/sancov/ vendor/llvm-project/release-8.x/compiler-rt/make/ vendor/llvm-project/release-8.x/compiler-rt/test/interception/TestCases/ vendor/llvm-project/release-8.x/compiler-rt/test/ubsan/TestCases/ImplicitCast/ vendor/llvm-project/release-8.x/compiler-rt/test/ubsan/TestCases/TypeCheck/Helpers/ vendor/llvm-project/release-8.x/lldb/lldb.xcodeproj/project.xcworkspace/xcuserdata/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/benchmarks/disassembly/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/example/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/expression_command/multiline/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/expression_command/no-result/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_case_sensitivity/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/embedded_interpreter/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/process_launch/my_working_dir/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/reproducer/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/single-quote-in-filename-to-lldb/path with '09/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/stop-hook/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/breakpoint_delay_breakpoint_one_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/breakpoint_one_delay_breakpoint_threads/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/breakpoints_delayed_breakpoint_one_watchpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/crash_with_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/crash_with_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/crash_with_watchpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/crash_with_watchpoint_breakpoint_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/delay_signal_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/delay_signal_watch/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/delay_watch_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/delayed_crash_with_breakpoint_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/delayed_crash_with_breakpoint_watchpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/many_breakpoints/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/many_crash/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/many_signals/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/many_watchpoints/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/n_watch_n_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/signal_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/signal_delay_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/signal_delay_watch/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/signal_n_watch_n_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/signal_watch/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/signal_watch_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_breakpoint_threads/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_breakpoints_one_delay_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_breakpoints_one_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_breakpoints_one_watchpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_watchpoint_threads/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_watchpoints_one_breakpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_watchpoints_one_delay_breakpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/two_watchpoints_one_signal/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/watch_break/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/watch_break_delay/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/watchpoint_delay_watchpoint_one_breakpoint/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/watchpoint_with_delay_watchpoint_threads/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/lang/go/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/linux/buildidcase/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/linux/compressed-debug-info/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/symbol/ vendor/llvm-project/release-8.x/lldb/packages/Python/lldbsuite/test/tools/lldb-server/exit-code/ vendor/llvm-project/release-8.x/lldb/source/Plugins/ExpressionParser/Go/ vendor/llvm-project/release-8.x/lldb/source/Plugins/Language/Go/ vendor/llvm-project/release-8.x/lldb/source/Plugins/Language/Java/ vendor/llvm-project/release-8.x/lldb/source/Plugins/Language/OCaml/ vendor/llvm-project/release-8.x/lldb/source/Plugins/LanguageRuntime/Java/ vendor/llvm-project/release-8.x/lldb/source/Plugins/OperatingSystem/Go/ vendor/llvm-project/release-8.x/lldb/test/Import/ vendor/llvm-project/release-8.x/lldb/tools/debugserver/debugserver.xcodeproj/project.xcworkspace/xcuserdata/ vendor/llvm-project/release-8.x/lldb/tools/lldb-perf/lldbperf.xcodeproj/xcuserdata/ vendor/llvm-project/release-8.x/lldb/unittests/UnwindAssembly/InstEmulation/ vendor/llvm-project/release-8.x/llvm/bindings/ocaml/transforms/scalar/ vendor/llvm-project/release-8.x/llvm/include/llvm/BinaryFormat/WasmRelocs/ vendor/llvm-project/release-8.x/llvm/include/llvm/MC/MCAnalysis/ vendor/llvm-project/release-8.x/llvm/include/llvm/TextAPI/MachO/ vendor/llvm-project/release-8.x/llvm/lib/ExecutionEngine/JIT/ vendor/llvm-project/release-8.x/llvm/lib/Fuzzer/test/ vendor/llvm-project/release-8.x/llvm/lib/MC/MCAnalysis/ vendor/llvm-project/release-8.x/llvm/lib/Target/Nios2/ vendor/llvm-project/release-8.x/llvm/lib/TextAPI/MachO/ vendor/llvm-project/release-8.x/llvm/test/CodeGen/AVR/instrumentation/ vendor/llvm-project/release-8.x/llvm/test/CodeGen/MIR/Lanai/ vendor/llvm-project/release-8.x/llvm/test/CodeGen/Nios2/ vendor/llvm-project/release-8.x/llvm/test/DebugInfo/Generic/Inputs/ vendor/llvm-project/release-8.x/llvm/test/LTO/Inputs/ vendor/llvm-project/release-8.x/llvm/test/MC/AArch64/SVE/assembler_tests/ vendor/llvm-project/release-8.x/llvm/test/MC/AArch64/SVE/disassembler_tests/ vendor/llvm-project/release-8.x/llvm/test/MC/AsmParser/include/ vendor/llvm-project/release-8.x/llvm/test/MC/Markup/ vendor/llvm-project/release-8.x/llvm/test/Metal/ vendor/llvm-project/release-8.x/llvm/test/ThinLTO/Inputs/ vendor/llvm-project/release-8.x/llvm/test/Transforms/AtomicExpandLoadLinked/ vendor/llvm-project/release-8.x/llvm/test/Transforms/BBVectorize/ vendor/llvm-project/release-8.x/llvm/test/Transforms/CountingFunctionInserter/ vendor/llvm-project/release-8.x/llvm/test/Transforms/LoadCombine/ vendor/llvm-project/release-8.x/llvm/test/Transforms/LoopStrengthReduce/PowerPC/ vendor/llvm-project/release-8.x/llvm/test/Transforms/LowerBitSets/ vendor/llvm-project/release-8.x/llvm/test/Transforms/NameAnonFunctions/ vendor/llvm-project/release-8.x/llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles/ vendor/llvm-project/release-8.x/llvm/test/Transforms/ScalarRepl/ vendor/llvm-project/release-8.x/llvm/test/Transforms/TailDup/ vendor/llvm-project/release-8.x/llvm/test/Transforms/Util/MemorySSA/ vendor/llvm-project/release-8.x/llvm/test/tools/gold/Inputs/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-dwarfdump/AArch64/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-dwarfdump/ARM/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-lto2/Inputs/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-lto2/X86/Inputs/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-mca/AArch64/CortexA57/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-nm/X86/radix/ vendor/llvm-project/release-8.x/llvm/test/tools/llvm-vtabledump/ vendor/llvm-project/release-8.x/llvm/test/tools/sanstats/Inputs/ vendor/llvm-project/release-8.x/llvm/tools/llvm-as-parasitic-coverage-repro/ vendor/llvm-project/release-8.x/llvm/tools/llvm-cfi-verify/unittests/ vendor/llvm-project/release-8.x/llvm/tools/llvm-mca/include/ vendor/llvm-project/release-8.x/llvm/tools/llvm-mca/lib/ vendor/llvm-project/release-8.x/llvm/tools/llvm-mcmarkup/ vendor/llvm-project/release-8.x/llvm/tools/llvm-pdbutil/fuzzer/ vendor/llvm-project/release-8.x/llvm/tools/llvm-vtabledump/ vendor/llvm-project/release-8.x/llvm/unittests/ExecutionEngine/JIT/ vendor/llvm-project/release-8.x/llvm/utils/abtest/ vendor/llvm-project/release-8.x/llvm/utils/buildit/ vendor/llvm-project/release-8.x/llvm/utils/docker/debian8/build/ vendor/llvm-project/release-8.x/llvm/utils/docker/debian8/release/ vendor/llvm-project/release-8.x/llvm/utils/docker/example/build/ vendor/llvm-project/release-8.x/llvm/utils/docker/example/release/ vendor/llvm-project/release-8.x/llvm/utils/docker/nvidia-cuda/build/ vendor/llvm-project/release-8.x/llvm/utils/docker/nvidia-cuda/release/ vendor/llvm-project/release-8.x/llvm/utils/lit/tests/Inputs/shared-output/ vendor/llvm-project/release-8.x/llvm/utils/opt-viewer/ vendor/llvm-project/release-9.x/compiler-rt/lib/builtins/armv6m/ vendor/llvm-project/release-9.x/compiler-rt/lib/sancov/ vendor/llvm-project/release-9.x/lldb/source/Plugins/ExpressionParser/Go/ vendor/llvm-project/release-9.x/lldb/source/Plugins/Language/Go/ vendor/llvm-project/release-9.x/lldb/source/Plugins/Language/Java/ vendor/llvm-project/release-9.x/lldb/source/Plugins/Language/OCaml/ vendor/llvm-project/release-9.x/lldb/source/Plugins/LanguageRuntime/Go/ vendor/llvm-project/release-9.x/lldb/source/Plugins/LanguageRuntime/Java/ vendor/llvm-project/release-9.x/lldb/source/Plugins/OperatingSystem/Go/ vendor/llvm-project/release-9.x/llvm/include/llvm/BinaryFormat/WasmRelocs/ vendor/llvm-project/release-9.x/llvm/include/llvm/MC/MCAnalysis/ vendor/llvm-project/release-9.x/llvm/lib/ExecutionEngine/JIT/ vendor/llvm-project/release-9.x/llvm/lib/MC/MCAnalysis/ vendor/llvm-project/release-9.x/llvm/lib/Target/Nios2/ vendor/llvm-project/release-9.x/llvm/lib/Target/WebAssembly/InstPrinter/ vendor/llvm-project/release-9.x/llvm/tools/llvm-mca/include/ vendor/llvm-project/release-9.x/llvm/tools/llvm-mca/lib/ From owner-svn-src-vendor@freebsd.org Fri Dec 20 21:21:52 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F34A1E397F; Fri, 20 Dec 2019 21:21:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fhX03Jdzz4Qln; Fri, 20 Dec 2019 21:21:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6CCE04ED8; Fri, 20 Dec 2019 21:21:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKLLqiN094194; Fri, 20 Dec 2019 21:21:52 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKLLqEl094193; Fri, 20 Dec 2019 21:21:52 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202121.xBKLLqEl094193@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 21:21:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355952 - vendor/llvm-project/master/clang/lib/Basic X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/master/clang/lib/Basic X-SVN-Commit-Revision: 355952 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 21:21:52 -0000 Author: dim Date: Fri Dec 20 21:21:52 2019 New Revision: 355952 URL: https://svnweb.freebsd.org/changeset/base/355952 Log: Eliminate differences between Git version of llvm-project master, and our vendor import in ^/vendor/llvm-project/master. Modified: vendor/llvm-project/master/clang/lib/Basic/Version.cpp Modified: vendor/llvm-project/master/clang/lib/Basic/Version.cpp ============================================================================== --- vendor/llvm-project/master/clang/lib/Basic/Version.cpp Fri Dec 20 21:18:34 2019 (r355951) +++ vendor/llvm-project/master/clang/lib/Basic/Version.cpp Fri Dec 20 21:21:52 2019 (r355952) @@ -35,7 +35,7 @@ std::string getClangRepositoryPath() { // If the CLANG_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/trunk/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL$"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); From owner-svn-src-vendor@freebsd.org Fri Dec 20 21:25:22 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A64B61E3B23; Fri, 20 Dec 2019 21:25:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fhc23xK7z4Qvy; Fri, 20 Dec 2019 21:25:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7E58D5013; Fri, 20 Dec 2019 21:25:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKLPMM0098219; Fri, 20 Dec 2019 21:25:22 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKLPMw3098218; Fri, 20 Dec 2019 21:25:22 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202125.xBKLPMw3098218@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 21:25:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355953 - vendor/llvm-project/release-9.x/clang/lib/Basic X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/release-9.x/clang/lib/Basic X-SVN-Commit-Revision: 355953 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 21:25:22 -0000 Author: dim Date: Fri Dec 20 21:25:22 2019 New Revision: 355953 URL: https://svnweb.freebsd.org/changeset/base/355953 Log: Eliminate differences between Git version of llvm-project release/9.x, and our vendor import in ^/vendor/llvm-project/release-9.x. Modified: vendor/llvm-project/release-9.x/clang/lib/Basic/Version.cpp Modified: vendor/llvm-project/release-9.x/clang/lib/Basic/Version.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/Basic/Version.cpp Fri Dec 20 21:21:52 2019 (r355952) +++ vendor/llvm-project/release-9.x/clang/lib/Basic/Version.cpp Fri Dec 20 21:25:22 2019 (r355953) @@ -35,7 +35,7 @@ std::string getClangRepositoryPath() { // If the CLANG_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_900/final/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL$"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); From owner-svn-src-vendor@freebsd.org Fri Dec 20 21:30:52 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CD14B1E3EBD; Fri, 20 Dec 2019 21:30:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fhkN57TBz4RNq; Fri, 20 Dec 2019 21:30:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AB5E85039; Fri, 20 Dec 2019 21:30:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKLUqk9099203; Fri, 20 Dec 2019 21:30:52 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKLUpgc099197; Fri, 20 Dec 2019 21:30:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202130.xBKLUpgc099197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 21:30:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355955 - in vendor/llvm-project/release-8.x: clang/lib/Basic clang/tools/scan-build/man clang/www llvm/utils/vim llvm/utils/vim/syntax X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/release-8.x: clang/lib/Basic clang/tools/scan-build/man clang/www llvm/utils/vim llvm/utils/vim/syntax X-SVN-Commit-Revision: 355955 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 21:30:52 -0000 Author: dim Date: Fri Dec 20 21:30:51 2019 New Revision: 355955 URL: https://svnweb.freebsd.org/changeset/base/355955 Log: Eliminate differences between Git version of llvm-project release/8.x, and our vendor import in ^/vendor/llvm-project/release-8.x. Modified: vendor/llvm-project/release-8.x/clang/lib/Basic/Version.cpp vendor/llvm-project/release-8.x/clang/tools/scan-build/man/scan-build.1 vendor/llvm-project/release-8.x/clang/www/cxx_dr_status.html vendor/llvm-project/release-8.x/clang/www/cxx_status.html vendor/llvm-project/release-8.x/llvm/utils/vim/syntax/llvm.vim vendor/llvm-project/release-8.x/llvm/utils/vim/syntax/tablegen.vim vendor/llvm-project/release-8.x/llvm/utils/vim/vimrc Modified: vendor/llvm-project/release-8.x/clang/lib/Basic/Version.cpp ============================================================================== --- vendor/llvm-project/release-8.x/clang/lib/Basic/Version.cpp Fri Dec 20 21:25:51 2019 (r355954) +++ vendor/llvm-project/release-8.x/clang/lib/Basic/Version.cpp Fri Dec 20 21:30:51 2019 (r355955) @@ -36,7 +36,7 @@ std::string getClangRepositoryPath() { // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_801/final/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL$"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); Modified: vendor/llvm-project/release-8.x/clang/tools/scan-build/man/scan-build.1 ============================================================================== --- vendor/llvm-project/release-8.x/clang/tools/scan-build/man/scan-build.1 Fri Dec 20 21:25:51 2019 (r355954) +++ vendor/llvm-project/release-8.x/clang/tools/scan-build/man/scan-build.1 Fri Dec 20 21:30:51 2019 (r355955) @@ -1,6 +1,6 @@ .\" This file is distributed under the University of Illinois Open Source .\" License. See LICENSE.TXT for details. -.\" $Id: scan-build.1 329399 2018-04-06 15:14:32Z alexfh $ +.\" $Id$ .Dd May 25, 2012 .Dt SCAN-BUILD 1 .Os "clang" "3.5" Modified: vendor/llvm-project/release-8.x/clang/www/cxx_dr_status.html ============================================================================== --- vendor/llvm-project/release-8.x/clang/www/cxx_dr_status.html Fri Dec 20 21:25:51 2019 (r355954) +++ vendor/llvm-project/release-8.x/clang/www/cxx_dr_status.html Fri Dec 20 21:30:51 2019 (r355955) @@ -28,7 +28,7 @@

C++ Defect Report Support in Clang

-

Last updated: $Date: 2019-01-07 07:00:46 +0100 (Mon, 07 Jan 2019) $

+

Last updated: $Date$

C++ defect report implementation status

Modified: vendor/llvm-project/release-8.x/clang/www/cxx_status.html ============================================================================== --- vendor/llvm-project/release-8.x/clang/www/cxx_status.html Fri Dec 20 21:25:51 2019 (r355954) +++ vendor/llvm-project/release-8.x/clang/www/cxx_status.html Fri Dec 20 21:30:51 2019 (r355955) @@ -26,7 +26,7 @@

C++ Support in Clang

-

Last updated: $Date: 2019-01-11 18:09:22 +0100 (Fri, 11 Jan 2019) $

+

Last updated: $Date$

Clang fully implements all published ISO C++ standards (C++98 / C++03, Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 63E9D1E4B06; Fri, 20 Dec 2019 21:55:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fjGb2YnMz4TDD; Fri, 20 Dec 2019 21:55:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52C50559E; Fri, 20 Dec 2019 21:55:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKLtJBG016476; Fri, 20 Dec 2019 21:55:19 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKLtE2h016451; Fri, 20 Dec 2019 21:55:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202155.xBKLtE2h016451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 21:55:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355961 - in vendor/llvm-project/release-9.x: clang/include/clang/CodeGen clang/lib/AST clang/lib/CodeGen clang/lib/Driver/ToolChains clang/lib/Sema compiler-rt/lib/profile lld/COFF lld... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/release-9.x: clang/include/clang/CodeGen clang/lib/AST clang/lib/CodeGen clang/lib/Driver/ToolChains clang/lib/Sema compiler-rt/lib/profile lld/COFF lld/ELF lld/docs lldb/source... X-SVN-Commit-Revision: 355961 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 21:55:19 -0000 Author: dim Date: Fri Dec 20 21:55:13 2019 New Revision: 355961 URL: https://svnweb.freebsd.org/changeset/base/355961 Log: Vendor import of llvm-project tag llvmorg-9.0.1: https://github.com/llvm/llvm-project/tree/llvmorg-9.0.1 Added: vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp (contents, props changed) vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h (contents, props changed) Modified: vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp vendor/llvm-project/release-9.x/clang/lib/CodeGen/CGExpr.cpp vendor/llvm-project/release-9.x/clang/lib/CodeGen/MicrosoftCXXABI.cpp vendor/llvm-project/release-9.x/clang/lib/Driver/ToolChains/Linux.cpp vendor/llvm-project/release-9.x/clang/lib/Sema/SemaDecl.cpp vendor/llvm-project/release-9.x/clang/lib/Sema/SemaType.cpp vendor/llvm-project/release-9.x/compiler-rt/lib/profile/InstrProfilingUtil.c vendor/llvm-project/release-9.x/lld/COFF/Driver.cpp vendor/llvm-project/release-9.x/lld/ELF/Symbols.h vendor/llvm-project/release-9.x/lld/docs/ReleaseNotes.rst vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/llvm-project/release-9.x/lldb/source/Symbol/Symtab.cpp vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineFunction.h vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineInstr.h vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/StackProtector.h vendor/llvm-project/release-9.x/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h vendor/llvm-project/release-9.x/llvm/include/llvm/Transforms/Scalar/GVN.h vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h vendor/llvm-project/release-9.x/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/MachineFunction.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/MachineInstr.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm-project/release-9.x/llvm/lib/CodeGen/StackProtector.cpp vendor/llvm-project/release-9.x/llvm/lib/Support/ARMTargetParser.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/ARM/ARM.td vendor/llvm-project/release-9.x/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/P9InstrResources.td vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCInstr64Bit.td vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/RISCV/RISCVRegisterInfo.h vendor/llvm-project/release-9.x/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86FrameLowering.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86FrameLowering.h vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86ISelLowering.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86ISelLowering.h vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86InstrInfo.cpp vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86MachineFunctionInfo.h vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm-project/release-9.x/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm-project/release-9.x/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm-project/release-9.x/llvm/lib/Transforms/Scalar/GVN.cpp vendor/llvm-project/release-9.x/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm-project/release-9.x/llvm/lib/Transforms/Scalar/SROA.cpp vendor/llvm-project/release-9.x/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp vendor/llvm-project/release-9.x/llvm/tools/llvm-objcopy/ObjcopyOpts.td vendor/llvm-project/release-9.x/llvm/tools/llvm-objcopy/StripOpts.td vendor/llvm-project/release-9.x/llvm/tools/opt/opt.cpp Modified: vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h ============================================================================== --- vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h Fri Dec 20 21:55:13 2019 (r355961) @@ -109,14 +109,12 @@ class ABIArgInfo { (private) UnpaddedCoerceAndExpandType = T; } - ABIArgInfo(Kind K) - : TheKind(K), PaddingInReg(false), InReg(false) { - } - public: - ABIArgInfo() + ABIArgInfo(Kind K = Direct) : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0), - TheKind(Direct), PaddingInReg(false), InReg(false) {} + TheKind(K), PaddingInReg(false), InAllocaSRet(false), + IndirectByVal(false), IndirectRealign(false), SRetAfterThis(false), + InReg(false), CanBeFlattened(false), SignExt(false) {} static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0, llvm::Type *Padding = nullptr, Modified: vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -794,58 +794,47 @@ namespace { /// constant value. bool InConstantContext; + /// Whether we're checking that an expression is a potential constant + /// expression. If so, do not fail on constructs that could become constant + /// later on (such as a use of an undefined global). + bool CheckingPotentialConstantExpression = false; + + /// Whether we're checking for an expression that has undefined behavior. + /// If so, we will produce warnings if we encounter an operation that is + /// always undefined. + bool CheckingForUndefinedBehavior = false; + enum EvaluationMode { /// Evaluate as a constant expression. Stop if we find that the expression /// is not a constant expression. EM_ConstantExpression, - /// Evaluate as a potential constant expression. Keep going if we hit a - /// construct that we can't evaluate yet (because we don't yet know the - /// value of something) but stop if we hit something that could never be - /// a constant expression. - EM_PotentialConstantExpression, + /// Evaluate as a constant expression. Stop if we find that the expression + /// is not a constant expression. Some expressions can be retried in the + /// optimizer if we don't constant fold them here, but in an unevaluated + /// context we try to fold them immediately since the optimizer never + /// gets a chance to look at it. + EM_ConstantExpressionUnevaluated, /// Fold the expression to a constant. Stop if we hit a side-effect that /// we can't model. EM_ConstantFold, - /// Evaluate the expression looking for integer overflow and similar - /// issues. Don't worry about side-effects, and try to visit all - /// subexpressions. - EM_EvaluateForOverflow, - /// Evaluate in any way we know how. Don't worry about side-effects that /// can't be modeled. EM_IgnoreSideEffects, - - /// Evaluate as a constant expression. Stop if we find that the expression - /// is not a constant expression. Some expressions can be retried in the - /// optimizer if we don't constant fold them here, but in an unevaluated - /// context we try to fold them immediately since the optimizer never - /// gets a chance to look at it. - EM_ConstantExpressionUnevaluated, - - /// Evaluate as a potential constant expression. Keep going if we hit a - /// construct that we can't evaluate yet (because we don't yet know the - /// value of something) but stop if we hit something that could never be - /// a constant expression. Some expressions can be retried in the - /// optimizer if we don't constant fold them here, but in an unevaluated - /// context we try to fold them immediately since the optimizer never - /// gets a chance to look at it. - EM_PotentialConstantExpressionUnevaluated, } EvalMode; /// Are we checking whether the expression is a potential constant /// expression? bool checkingPotentialConstantExpression() const { - return EvalMode == EM_PotentialConstantExpression || - EvalMode == EM_PotentialConstantExpressionUnevaluated; + return CheckingPotentialConstantExpression; } /// Are we checking an expression for overflow? // FIXME: We should check for any kind of undefined or suspicious behavior // in such constructs, not just overflow. - bool checkingForOverflow() { return EvalMode == EM_EvaluateForOverflow; } + bool checkingForUndefinedBehavior() { return CheckingForUndefinedBehavior; } EvalInfo(const ASTContext &C, Expr::EvalStatus &S, EvaluationMode Mode) : Ctx(const_cast(C)), EvalStatus(S), CurrentCall(nullptr), @@ -932,15 +921,12 @@ namespace { switch (EvalMode) { case EM_ConstantFold: case EM_IgnoreSideEffects: - case EM_EvaluateForOverflow: if (!HasFoldFailureDiagnostic) break; // We've already failed to fold something. Keep that diagnostic. LLVM_FALLTHROUGH; case EM_ConstantExpression: - case EM_PotentialConstantExpression: case EM_ConstantExpressionUnevaluated: - case EM_PotentialConstantExpressionUnevaluated: HasActiveDiagnostic = false; return OptionalDiagnostic(); } @@ -986,8 +972,8 @@ namespace { /// Diagnose that the evaluation does not produce a C++11 core constant /// expression. /// - /// FIXME: Stop evaluating if we're in EM_ConstantExpression or - /// EM_PotentialConstantExpression mode and we produce one of these. + /// FIXME: Stop evaluating if we're in EM_ConstantExpression mode + /// and we produce one of these. OptionalDiagnostic CCEDiag(SourceLocation Loc, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes = 0) { @@ -1023,16 +1009,16 @@ namespace { /// couldn't model? bool keepEvaluatingAfterSideEffect() { switch (EvalMode) { - case EM_PotentialConstantExpression: - case EM_PotentialConstantExpressionUnevaluated: - case EM_EvaluateForOverflow: case EM_IgnoreSideEffects: return true; case EM_ConstantExpression: case EM_ConstantExpressionUnevaluated: case EM_ConstantFold: - return false; + // By default, assume any side effect might be valid in some other + // evaluation of this expression from a different context. + return checkingPotentialConstantExpression() || + checkingForUndefinedBehavior(); } llvm_unreachable("Missed EvalMode case"); } @@ -1047,16 +1033,13 @@ namespace { /// Should we continue evaluation after encountering undefined behavior? bool keepEvaluatingAfterUndefinedBehavior() { switch (EvalMode) { - case EM_EvaluateForOverflow: case EM_IgnoreSideEffects: case EM_ConstantFold: return true; - case EM_PotentialConstantExpression: - case EM_PotentialConstantExpressionUnevaluated: case EM_ConstantExpression: case EM_ConstantExpressionUnevaluated: - return false; + return checkingForUndefinedBehavior(); } llvm_unreachable("Missed EvalMode case"); } @@ -1076,16 +1059,12 @@ namespace { return false; switch (EvalMode) { - case EM_PotentialConstantExpression: - case EM_PotentialConstantExpressionUnevaluated: - case EM_EvaluateForOverflow: - return true; - case EM_ConstantExpression: case EM_ConstantExpressionUnevaluated: case EM_ConstantFold: case EM_IgnoreSideEffects: - return false; + return checkingPotentialConstantExpression() || + checkingForUndefinedBehavior(); } llvm_unreachable("Missed EvalMode case"); } @@ -1142,9 +1121,7 @@ namespace { Info.EvalStatus.Diag->empty() && !Info.EvalStatus.HasSideEffects), OldMode(Info.EvalMode) { - if (Enabled && - (Info.EvalMode == EvalInfo::EM_ConstantExpression || - Info.EvalMode == EvalInfo::EM_ConstantExpressionUnevaluated)) + if (Enabled) Info.EvalMode = EvalInfo::EM_ConstantFold; } void keepDiagnostics() { Enabled = false; } @@ -1163,8 +1140,7 @@ namespace { EvalInfo::EvaluationMode OldMode; explicit IgnoreSideEffectsRAII(EvalInfo &Info) : Info(Info), OldMode(Info.EvalMode) { - if (!Info.checkingPotentialConstantExpression()) - Info.EvalMode = EvalInfo::EM_IgnoreSideEffects; + Info.EvalMode = EvalInfo::EM_IgnoreSideEffects; } ~IgnoreSideEffectsRAII() { Info.EvalMode = OldMode; } @@ -2323,7 +2299,7 @@ static bool CheckedIntArithmetic(EvalInfo &Info, const APSInt Value(Op(LHS.extend(BitWidth), RHS.extend(BitWidth)), false); Result = Value.trunc(LHS.getBitWidth()); if (Result.extend(BitWidth) != Value) { - if (Info.checkingForOverflow()) + if (Info.checkingForUndefinedBehavior()) Info.Ctx.getDiagnostics().Report(E->getExprLoc(), diag::warn_integer_constant_overflow) << Result.toString(10) << E->getType(); @@ -6047,6 +6023,8 @@ class ExprEvaluatorBase (public) // Always assume __builtin_constant_p(...) ? ... : ... is a potential // constant expression; we can't check whether it's potentially foldable. + // FIXME: We should instead treat __builtin_constant_p as non-constant if + // it would return 'false' in this mode. if (Info.checkingPotentialConstantExpression() && IsBcpCall) return false; @@ -6329,7 +6307,7 @@ class ExprEvaluatorBase (public) bool VisitStmtExpr(const StmtExpr *E) { // We will have checked the full-expressions inside the statement expression // when they were completed, and don't need to check them again now. - if (Info.checkingForOverflow()) + if (Info.checkingForUndefinedBehavior()) return Error(E); BlockScopeRAII Scope(Info); @@ -9499,14 +9477,11 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const Call // size of the referenced object. switch (Info.EvalMode) { case EvalInfo::EM_ConstantExpression: - case EvalInfo::EM_PotentialConstantExpression: case EvalInfo::EM_ConstantFold: - case EvalInfo::EM_EvaluateForOverflow: case EvalInfo::EM_IgnoreSideEffects: // Leave it to IR generation. return Error(E); case EvalInfo::EM_ConstantExpressionUnevaluated: - case EvalInfo::EM_PotentialConstantExpressionUnevaluated: // Reduce it to a constant now. return Success((Type & 2) ? 0 : -1, E); } @@ -12546,8 +12521,9 @@ APSInt Expr::EvaluateKnownConstIntCheckOverflow( EvalResult EVResult; EVResult.Diag = Diag; - EvalInfo Info(Ctx, EVResult, EvalInfo::EM_EvaluateForOverflow); + EvalInfo Info(Ctx, EVResult, EvalInfo::EM_IgnoreSideEffects); Info.InConstantContext = true; + Info.CheckingForUndefinedBehavior = true; bool Result = ::EvaluateAsRValue(Info, this, EVResult.Val); (void)Result; @@ -12564,7 +12540,8 @@ void Expr::EvaluateForOverflow(const ASTContext &Ctx) bool IsConst; EvalResult EVResult; if (!FastEvaluateAsRValue(this, EVResult, Ctx, IsConst)) { - EvalInfo Info(Ctx, EVResult, EvalInfo::EM_EvaluateForOverflow); + EvalInfo Info(Ctx, EVResult, EvalInfo::EM_IgnoreSideEffects); + Info.CheckingForUndefinedBehavior = true; (void)::EvaluateAsRValue(Info, this, EVResult.Val); } } @@ -13178,9 +13155,9 @@ bool Expr::isPotentialConstantExpr(const FunctionDecl Expr::EvalStatus Status; Status.Diag = &Diags; - EvalInfo Info(FD->getASTContext(), Status, - EvalInfo::EM_PotentialConstantExpression); + EvalInfo Info(FD->getASTContext(), Status, EvalInfo::EM_ConstantExpression); Info.InConstantContext = true; + Info.CheckingPotentialConstantExpression = true; const CXXMethodDecl *MD = dyn_cast(FD); const CXXRecordDecl *RD = MD ? MD->getParent()->getCanonicalDecl() : nullptr; @@ -13219,8 +13196,9 @@ bool Expr::isPotentialConstantExprUnevaluated(Expr *E, Status.Diag = &Diags; EvalInfo Info(FD->getASTContext(), Status, - EvalInfo::EM_PotentialConstantExpressionUnevaluated); + EvalInfo::EM_ConstantExpressionUnevaluated); Info.InConstantContext = true; + Info.CheckingPotentialConstantExpression = true; // Fabricate a call stack frame to give the arguments a plausible cover story. ArrayRef Args; Modified: vendor/llvm-project/release-9.x/clang/lib/CodeGen/CGExpr.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/CodeGen/CGExpr.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/lib/CodeGen/CGExpr.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -2540,6 +2540,11 @@ LValue CodeGenFunction::EmitDeclRefLValue(const DeclRe // Spill the constant value to a global. Addr = CGM.createUnnamedGlobalFrom(*VD, Val, getContext().getDeclAlign(VD)); + llvm::Type *VarTy = getTypes().ConvertTypeForMem(VD->getType()); + auto *PTy = llvm::PointerType::get( + VarTy, getContext().getTargetAddressSpace(VD->getType())); + if (PTy != Addr.getType()) + Addr = Builder.CreatePointerBitCastOrAddrSpaceCast(Addr, PTy); } else { // Should we be using the alignment of the constant pointer we emitted? CharUnits Alignment = Modified: vendor/llvm-project/release-9.x/clang/lib/CodeGen/MicrosoftCXXABI.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/CodeGen/MicrosoftCXXABI.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/lib/CodeGen/MicrosoftCXXABI.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -617,6 +617,9 @@ class MicrosoftCXXABI : public CGCXXABI { (private) llvm::Function *EmitVirtualMemPtrThunk(const CXXMethodDecl *MD, const MethodVFTableLocation &ML); + llvm::Constant *EmitMemberDataPointer(const CXXRecordDecl *RD, + CharUnits offset); + public: llvm::Type *ConvertMemberPointerType(const MemberPointerType *MPT) override; @@ -2700,7 +2703,11 @@ MicrosoftCXXABI::EmitFullMemberPointer(llvm::Constant llvm::Constant * MicrosoftCXXABI::EmitMemberDataPointer(const MemberPointerType *MPT, CharUnits offset) { - const CXXRecordDecl *RD = MPT->getMostRecentCXXRecordDecl(); + return EmitMemberDataPointer(MPT->getMostRecentCXXRecordDecl(), offset); +} + +llvm::Constant *MicrosoftCXXABI::EmitMemberDataPointer(const CXXRecordDecl *RD, + CharUnits offset) { if (RD->getMSInheritanceModel() == MSInheritanceAttr::Keyword_virtual_inheritance) offset -= getContext().getOffsetOfBaseWithVBPtr(RD); @@ -2724,8 +2731,17 @@ llvm::Constant *MicrosoftCXXABI::EmitMemberPointer(con if (const CXXMethodDecl *MD = dyn_cast(MPD)) { C = EmitMemberFunctionPointer(MD); } else { + // For a pointer to data member, start off with the offset of the field in + // the class in which it was declared, and convert from there if necessary. + // For indirect field decls, get the outermost anonymous field and use the + // parent class. CharUnits FieldOffset = Ctx.toCharUnitsFromBits(Ctx.getFieldOffset(MPD)); - C = EmitMemberDataPointer(DstTy, FieldOffset); + const FieldDecl *FD = dyn_cast(MPD); + if (!FD) + FD = cast(*cast(MPD)->chain_begin()); + const CXXRecordDecl *RD = cast(FD->getParent()); + RD = RD->getMostRecentNonInjectedDecl(); + C = EmitMemberDataPointer(RD, FieldOffset); } if (!MemberPointerPath.empty()) { Modified: vendor/llvm-project/release-9.x/clang/lib/Driver/ToolChains/Linux.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/Driver/ToolChains/Linux.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/lib/Driver/ToolChains/Linux.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -658,11 +658,11 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &D if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include"); - if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { - SmallString<128> P(D.ResourceDir); - llvm::sys::path::append(P, "include"); - addSystemInclude(DriverArgs, CC1Args, P); - } + SmallString<128> ResourceDirInclude(D.ResourceDir); + llvm::sys::path::append(ResourceDirInclude, "include"); + if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && + (!getTriple().isMusl() || DriverArgs.hasArg(options::OPT_nostdlibinc))) + addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude); if (DriverArgs.hasArg(options::OPT_nostdlibinc)) return; @@ -860,6 +860,9 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &D addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include"); addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); + + if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && getTriple().isMusl()) + addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude); } static std::string DetectLibcxxIncludePath(llvm::vfs::FileSystem &vfs, Modified: vendor/llvm-project/release-9.x/clang/lib/Sema/SemaDecl.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/Sema/SemaDecl.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/lib/Sema/SemaDecl.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -3475,7 +3475,12 @@ bool Sema::MergeFunctionDecl(FunctionDecl *New, NamedD } } - if (OldQTypeForComparison == NewQType) + // If the function types are compatible, merge the declarations. Ignore the + // exception specifier because it was already checked above in + // CheckEquivalentExceptionSpec, and we don't want follow-on diagnostics + // about incompatible types under -fms-compatibility. + if (Context.hasSameFunctionTypeIgnoringExceptionSpec(OldQTypeForComparison, + NewQType)) return MergeCompatibleFunctionDecls(New, Old, S, MergeTypeWithOld); // If the types are imprecise (due to dependent constructs in friends or Modified: vendor/llvm-project/release-9.x/clang/lib/Sema/SemaType.cpp ============================================================================== --- vendor/llvm-project/release-9.x/clang/lib/Sema/SemaType.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/clang/lib/Sema/SemaType.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -6325,7 +6325,8 @@ namespace { Pointer, BlockPointer, Reference, - MemberPointer + MemberPointer, + MacroQualified, }; QualType Original; @@ -6356,6 +6357,9 @@ namespace { } else if (isa(Ty)) { T = cast(Ty)->getEquivalentType(); Stack.push_back(Attributed); + } else if (isa(Ty)) { + T = cast(Ty)->getUnderlyingType(); + Stack.push_back(MacroQualified); } else { const Type *DTy = Ty->getUnqualifiedDesugaredType(); if (Ty == DTy) { @@ -6411,6 +6415,9 @@ namespace { QualType New = wrap(C, cast(Old)->getInnerType(), I); return C.getParenType(New); } + + case MacroQualified: + return wrap(C, cast(Old)->getUnderlyingType(), I); case Pointer: { QualType New = wrap(C, cast(Old)->getPointeeType(), I); Modified: vendor/llvm-project/release-9.x/compiler-rt/lib/profile/InstrProfilingUtil.c ============================================================================== --- vendor/llvm-project/release-9.x/compiler-rt/lib/profile/InstrProfilingUtil.c Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/compiler-rt/lib/profile/InstrProfilingUtil.c Fri Dec 20 21:55:13 2019 (r355961) @@ -189,8 +189,9 @@ COMPILER_RT_VISIBILITY FILE *lprofOpenFileEx(const cha f = fdopen(fd, "r+b"); #elif defined(_WIN32) // FIXME: Use the wide variants to handle Unicode filenames. - HANDLE h = CreateFileA(ProfileName, GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + HANDLE h = CreateFileA(ProfileName, GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL, 0); if (h == INVALID_HANDLE_VALUE) return NULL; @@ -199,6 +200,10 @@ COMPILER_RT_VISIBILITY FILE *lprofOpenFileEx(const cha CloseHandle(h); return NULL; } + + if (lprofLockFd(fd) != 0) + PROF_WARN("Data may be corrupted during profile merging : %s\n", + "Fail to obtain file lock due to system limit."); f = _fdopen(fd, "r+b"); if (f == 0) { Modified: vendor/llvm-project/release-9.x/lld/COFF/Driver.cpp ============================================================================== --- vendor/llvm-project/release-9.x/lld/COFF/Driver.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/lld/COFF/Driver.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -1138,7 +1138,7 @@ void LinkerDriver::link(ArrayRef argsArr } } - if (!args.hasArg(OPT_INPUT)) { + if (!args.hasArg(OPT_INPUT, OPT_wholearchive_file)) { if (args.hasArg(OPT_deffile)) config->noEntry = true; else @@ -1626,7 +1626,7 @@ void LinkerDriver::link(ArrayRef argsArr } // Handle generation of import library from a def file. - if (!args.hasArg(OPT_INPUT)) { + if (!args.hasArg(OPT_INPUT, OPT_wholearchive_file)) { fixupExports(); createImportLibrary(/*asLib=*/true); return; @@ -1672,8 +1672,8 @@ void LinkerDriver::link(ArrayRef argsArr // Set default image name if neither /out or /def set it. if (config->outputFile.empty()) { - config->outputFile = - getOutputPath((*args.filtered(OPT_INPUT).begin())->getValue()); + config->outputFile = getOutputPath( + (*args.filtered(OPT_INPUT, OPT_wholearchive_file).begin())->getValue()); } // Fail early if an output file is not writable. Modified: vendor/llvm-project/release-9.x/lld/ELF/Symbols.h ============================================================================== --- vendor/llvm-project/release-9.x/lld/ELF/Symbols.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/lld/ELF/Symbols.h Fri Dec 20 21:55:13 2019 (r355961) @@ -108,27 +108,27 @@ class Symbol { (public) // Symbol visibility. This is the computed minimum visibility of all // observed non-DSO symbols. - unsigned visibility : 2; + uint8_t visibility : 2; // True if the symbol was used for linking and thus need to be added to the // output file's symbol table. This is true for all symbols except for // unreferenced DSO symbols, lazy (archive) symbols, and bitcode symbols that // are unreferenced except by other bitcode objects. - unsigned isUsedInRegularObj : 1; + uint8_t isUsedInRegularObj : 1; // If this flag is true and the symbol has protected or default visibility, it // will appear in .dynsym. This flag is set by interposable DSO symbols in // executables, by most symbols in DSOs and executables built with // --export-dynamic, and by dynamic lists. - unsigned exportDynamic : 1; + uint8_t exportDynamic : 1; // False if LTO shouldn't inline whatever this symbol points to. If a symbol // is overwritten after LTO, LTO shouldn't inline the symbol because it // doesn't know the final contents of the symbol. - unsigned canInline : 1; + uint8_t canInline : 1; // True if this symbol is specified by --trace-symbol option. - unsigned traced : 1; + uint8_t traced : 1; inline void replace(const Symbol &New); @@ -236,28 +236,28 @@ class Symbol { (public) public: // True the symbol should point to its PLT entry. // For SharedSymbol only. - unsigned needsPltAddr : 1; + uint8_t needsPltAddr : 1; // True if this symbol is in the Iplt sub-section of the Plt and the Igot // sub-section of the .got.plt or .got. - unsigned isInIplt : 1; + uint8_t isInIplt : 1; // True if this symbol needs a GOT entry and its GOT entry is actually in // Igot. This will be true only for certain non-preemptible ifuncs. - unsigned gotInIgot : 1; + uint8_t gotInIgot : 1; // True if this symbol is preemptible at load time. - unsigned isPreemptible : 1; + uint8_t isPreemptible : 1; // True if an undefined or shared symbol is used from a live section. - unsigned used : 1; + uint8_t used : 1; // True if a call to this symbol needs to be followed by a restore of the // PPC64 toc pointer. - unsigned needsTocRestore : 1; + uint8_t needsTocRestore : 1; // True if this symbol is defined by a linker script. - unsigned scriptDefined : 1; + uint8_t scriptDefined : 1; // The partition whose dynamic symbol table contains this symbol's definition. uint8_t partition = 1; Modified: vendor/llvm-project/release-9.x/lld/docs/ReleaseNotes.rst ============================================================================== --- vendor/llvm-project/release-9.x/lld/docs/ReleaseNotes.rst Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/lld/docs/ReleaseNotes.rst Fri Dec 20 21:55:13 2019 (r355961) @@ -153,7 +153,7 @@ COFF Improvements * Having more than two ``/natvis:`` now works correctly; it used to not work for larger binaries before. - (`r327895 `_) + (`r359515 `_) * Undefined symbols are now printed only in demangled form. Pass ``/demangle:no`` to see raw symbol names instead. Added: vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -0,0 +1,88 @@ +#include "PythonReadline.h" + +#ifdef LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE + +#include + +#include + +// Simple implementation of the Python readline module using libedit. +// In the event that libedit is excluded from the build, this turns +// back into a null implementation that blocks the module from pulling +// in the GNU readline shared lib, which causes linkage confusion when +// both readline and libedit's readline compatibility symbols collide. +// +// Currently it only installs a PyOS_ReadlineFunctionPointer, without +// implementing any of the readline module methods. This is meant to +// work around LLVM pr18841 to avoid seg faults in the stock Python +// readline.so linked against GNU readline. +// +// Bug on the cpython side: https://bugs.python.org/issue38634 + +PyDoc_STRVAR(moduleDocumentation, + "Simple readline module implementation based on libedit."); + +#if PY_MAJOR_VERSION >= 3 +static struct PyModuleDef readline_module = { + PyModuleDef_HEAD_INIT, // m_base + "lldb_editline", // m_name + moduleDocumentation, // m_doc + -1, // m_size + nullptr, // m_methods + nullptr, // m_reload + nullptr, // m_traverse + nullptr, // m_clear + nullptr, // m_free +}; +#else +static struct PyMethodDef moduleMethods[] = {{nullptr, nullptr, 0, nullptr}}; +#endif + +static char * +#if PY_MAJOR_VERSION >= 3 +simple_readline(FILE *stdin, FILE *stdout, const char *prompt) +#else +simple_readline(FILE *stdin, FILE *stdout, char *prompt) +#endif +{ + rl_instream = stdin; + rl_outstream = stdout; + char *line = readline(prompt); + if (!line) { +#if PY_MAJOR_VERSION >= 3 + char *ret = (char *)PyMem_RawMalloc(1); +#else + char *ret = (char *)PyMem_Malloc(1); +#endif + if (ret != NULL) + *ret = '\0'; + return ret; + } + if (*line) + add_history(line); + int n = strlen(line); +#if PY_MAJOR_VERSION >= 3 + char *ret = (char *)PyMem_RawMalloc(n + 2); +#else + char *ret = (char *)PyMem_Malloc(n + 2); +#endif + if (ret) { + strncpy(ret, line, n); + free(line); + ret[n] = '\n'; + ret[n + 1] = '\0'; + } + return ret; +} + +PyMODINIT_FUNC initlldb_readline(void) { + PyOS_ReadlineFunctionPointer = simple_readline; + +#if PY_MAJOR_VERSION >= 3 + return PyModule_Create(&readline_module); +#else + Py_InitModule4("readline", moduleMethods, moduleDocumentation, + static_cast(NULL), PYTHON_API_VERSION); +#endif +} +#endif Added: vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h Fri Dec 20 21:55:13 2019 (r355961) @@ -0,0 +1,26 @@ +//===-- PythonReadline.h ----------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H +#define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H + +#if !defined(LLDB_DISABLE_LIBEDIT) && defined(__linux__) +// NOTE: Since Python may define some pre-processor definitions which affect the +// standard headers on some systems, you must include Python.h before any +// standard headers are included. +#include "Python.h" + +// no need to hack into Python's readline module if libedit isn't used. +// +#define LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE 1 + +extern "C" PyMODINIT_FUNC initlldb_readline(void); + +#endif + +#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H Modified: vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp ============================================================================== --- vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -17,6 +17,7 @@ #include "PythonDataObjects.h" #include "PythonExceptionState.h" +#include "PythonReadline.h" #include "ScriptInterpreterPythonImpl.h" #include "lldb/API/SBFrame.h" @@ -206,6 +207,22 @@ struct InitializePythonRAII { (public) m_stdin_tty_state.Save(STDIN_FILENO, false); InitializePythonHome(); + +#ifdef LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE + // Python's readline is incompatible with libedit being linked into lldb. + // Provide a patched version local to the embedded interpreter. + bool ReadlinePatched = false; + for (auto *p = PyImport_Inittab; p->name != NULL; p++) { + if (strcmp(p->name, "readline") == 0) { + p->initfunc = initlldb_readline; + break; + } + } + if (!ReadlinePatched) { + PyImport_AppendInittab("readline", initlldb_readline); + ReadlinePatched = true; + } +#endif // Register _lldb as a built-in module. PyImport_AppendInittab("_lldb", LLDBSwigPyInit); Modified: vendor/llvm-project/release-9.x/lldb/source/Symbol/Symtab.cpp ============================================================================== --- vendor/llvm-project/release-9.x/lldb/source/Symbol/Symtab.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/lldb/source/Symbol/Symtab.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -896,14 +896,8 @@ void Symtab::InitAddressIndexes() { for (size_t i = 0; i < num_entries; i++) { FileRangeToIndexMap::Entry *entry = m_file_addr_to_index.GetMutableEntryAtIndex(i); - if (entry->GetByteSize() > 0) - continue; - addr_t curr_base_addr = entry->GetRangeBase(); - // Symbols with non-zero size will show after zero-sized symbols on the - // same address. So do not set size of a non-last zero-sized symbol. - if (i == num_entries - 1 || - m_file_addr_to_index.GetMutableEntryAtIndex(i + 1) - ->GetRangeBase() != curr_base_addr) { + if (entry->GetByteSize() == 0) { + addr_t curr_base_addr = entry->GetRangeBase(); const RangeVector::Entry *containing_section = section_ranges.FindEntryThatContains(curr_base_addr); Modified: vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineFunction.h ============================================================================== --- vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineFunction.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineFunction.h Fri Dec 20 21:55:13 2019 (r355961) @@ -792,6 +792,10 @@ class MachineFunction { (public) MCSymbol *PreInstrSymbol = nullptr, MCSymbol *PostInstrSymbol = nullptr); + MachineInstr::ExtraInfo *createMIExtraInfoWithMarker( + ArrayRef MMOs, MCSymbol *PreInstrSymbol, + MCSymbol *PostInstrSymbol, MDNode *HeapAllocMarker); + /// Allocate a string and populate it with the given external symbol name. const char *createExternalSymbolName(StringRef Name); Modified: vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineInstr.h ============================================================================== --- vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineInstr.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineInstr.h Fri Dec 20 21:55:13 2019 (r355961) @@ -137,19 +137,23 @@ class MachineInstr (private) /// This has to be defined eagerly due to the implementation constraints of /// `PointerSumType` where it is used. class ExtraInfo final - : TrailingObjects { + : TrailingObjects { public: static ExtraInfo *create(BumpPtrAllocator &Allocator, ArrayRef MMOs, MCSymbol *PreInstrSymbol = nullptr, - MCSymbol *PostInstrSymbol = nullptr) { + MCSymbol *PostInstrSymbol = nullptr, + MDNode *HeapAllocMarker = nullptr) { bool HasPreInstrSymbol = PreInstrSymbol != nullptr; bool HasPostInstrSymbol = PostInstrSymbol != nullptr; + bool HasHeapAllocMarker = HeapAllocMarker != nullptr; auto *Result = new (Allocator.Allocate( - totalSizeToAlloc( - MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol), + totalSizeToAlloc( + MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, + HasHeapAllocMarker), alignof(ExtraInfo))) - ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol); + ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, + HasHeapAllocMarker); // Copy the actual data into the trailing objects. std::copy(MMOs.begin(), MMOs.end(), @@ -160,6 +164,8 @@ class MachineInstr (private) if (HasPostInstrSymbol) Result->getTrailingObjects()[HasPreInstrSymbol] = PostInstrSymbol; + if (HasHeapAllocMarker) + Result->getTrailingObjects()[0] = HeapAllocMarker; return Result; } @@ -178,6 +184,10 @@ class MachineInstr (private) : nullptr; } + MDNode *getHeapAllocMarker() const { + return HasHeapAllocMarker ? getTrailingObjects()[0] : nullptr; + } + private: friend TrailingObjects; @@ -189,6 +199,7 @@ class MachineInstr (private) const int NumMMOs; const bool HasPreInstrSymbol; const bool HasPostInstrSymbol; + const bool HasHeapAllocMarker; // Implement the `TrailingObjects` internal API. size_t numTrailingObjects(OverloadToken) const { @@ -197,12 +208,17 @@ class MachineInstr (private) size_t numTrailingObjects(OverloadToken) const { return HasPreInstrSymbol + HasPostInstrSymbol; } + size_t numTrailingObjects(OverloadToken) const { + return HasHeapAllocMarker; + } // Just a boring constructor to allow us to initialize the sizes. Always use // the `create` routine above. - ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol) + ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol, + bool HasHeapAllocMarker) : NumMMOs(NumMMOs), HasPreInstrSymbol(HasPreInstrSymbol), - HasPostInstrSymbol(HasPostInstrSymbol) {} + HasPostInstrSymbol(HasPostInstrSymbol), + HasHeapAllocMarker(HasHeapAllocMarker) {} }; /// Enumeration of the kinds of inline extra info available. It is important @@ -577,6 +593,16 @@ class MachineInstr (private) return nullptr; } + /// Helper to extract a heap alloc marker if one has been added. + MDNode *getHeapAllocMarker() const { + if (!Info) + return nullptr; + if (ExtraInfo *EI = Info.get()) + return EI->getHeapAllocMarker(); + + return nullptr; + } + /// API for querying MachineInstr properties. They are the same as MCInstrDesc /// queries but they are bundle aware. @@ -1578,6 +1604,12 @@ class MachineInstr (private) /// replace ours with it. void cloneInstrSymbols(MachineFunction &MF, const MachineInstr &MI); + /// Set a marker on instructions that denotes where we should create and emit + /// heap alloc site labels. This waits until after instruction selection and + /// optimizations to create the label, so it should still work if the + /// instruction is removed or duplicated. + void setHeapAllocMarker(MachineFunction &MF, MDNode *MD); + /// Return the MIFlags which represent both MachineInstrs. This /// should be used when merging two MachineInstrs into one. This routine does /// not modify the MIFlags of this MachineInstr. @@ -1632,6 +1664,12 @@ class MachineInstr (private) const TargetRegisterClass *getRegClassConstraintEffectForVRegImpl( unsigned OpIdx, unsigned Reg, const TargetRegisterClass *CurRC, const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) const; + + /// Stores extra instruction information inline or allocates as ExtraInfo + /// based on the number of pointers. + void setExtraInfo(MachineFunction &MF, ArrayRef MMOs, + MCSymbol *PreInstrSymbol, MCSymbol *PostInstrSymbol, + MDNode *HeapAllocMarker); }; /// Special DenseMapInfo traits to compare MachineInstr* by *value* of the Modified: vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/StackProtector.h ============================================================================== --- vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/StackProtector.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/StackProtector.h Fri Dec 20 21:55:13 2019 (r355961) @@ -89,7 +89,8 @@ class StackProtector : public FunctionPass { (private) bool InStruct = false) const; /// Check whether a stack allocation has its address taken. - bool HasAddressTaken(const Instruction *AI); + bool HasAddressTaken(const Instruction *AI, + SmallPtrSetImpl &VisitedPHIs); /// RequiresStackProtector - Check whether or not this function needs a /// stack protector based upon the stack protector level. Modified: vendor/llvm-project/release-9.x/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h ============================================================================== --- vendor/llvm-project/release-9.x/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h Fri Dec 20 21:55:13 2019 (r355961) @@ -16,6 +16,8 @@ #include "llvm/Demangle/DemangleConfig.h" #include "llvm/Demangle/StringView.h" #include +#include +#include namespace llvm { namespace itanium_demangle { Modified: vendor/llvm-project/release-9.x/llvm/include/llvm/Transforms/Scalar/GVN.h ============================================================================== --- vendor/llvm-project/release-9.x/llvm/include/llvm/Transforms/Scalar/GVN.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/include/llvm/Transforms/Scalar/GVN.h Fri Dec 20 21:55:13 2019 (r355961) @@ -120,6 +120,8 @@ class GVN : public PassInfoMixin { (public) uint32_t lookupOrAddCall(CallInst *C); uint32_t phiTranslateImpl(const BasicBlock *BB, const BasicBlock *PhiBlock, uint32_t Num, GVN &Gvn); + bool areCallValsEqual(uint32_t Num, uint32_t NewNum, const BasicBlock *Pred, + const BasicBlock *PhiBlock, GVN &Gvn); std::pair assignExpNewValueNum(Expression &exp); bool areAllValsInBB(uint32_t num, const BasicBlock *BB, GVN &Gvn); Modified: vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp ============================================================================== --- vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -1127,15 +1127,9 @@ void CodeViewDebug::emitDebugInfoForFunction(const Fun } for (auto HeapAllocSite : FI.HeapAllocSites) { - MCSymbol *BeginLabel = std::get<0>(HeapAllocSite); - MCSymbol *EndLabel = std::get<1>(HeapAllocSite); - - // The labels might not be defined if the instruction was replaced - // somewhere in the codegen pipeline. - if (!BeginLabel->isDefined() || !EndLabel->isDefined()) - continue; - - DIType *DITy = std::get<2>(HeapAllocSite); + const MCSymbol *BeginLabel = std::get<0>(HeapAllocSite); + const MCSymbol *EndLabel = std::get<1>(HeapAllocSite); + const DIType *DITy = std::get<2>(HeapAllocSite); MCSymbol *HeapAllocEnd = beginSymbolRecord(SymbolKind::S_HEAPALLOCSITE); OS.AddComment("Call site offset"); OS.EmitCOFFSecRel32(BeginLabel, /*Offset=*/0); @@ -1454,6 +1448,16 @@ void CodeViewDebug::beginFunctionImpl(const MachineFun DebugLoc FnStartDL = PrologEndLoc.getFnDebugLoc(); maybeRecordLocation(FnStartDL, MF); } + + // Find heap alloc sites and emit labels around them. + for (const auto &MBB : *MF) { + for (const auto &MI : MBB) { + if (MI.getHeapAllocMarker()) { + requestLabelBeforeInsn(&MI); + requestLabelAfterInsn(&MI); + } + } + } } static bool shouldEmitUdt(const DIType *T) { @@ -2888,8 +2892,18 @@ void CodeViewDebug::endFunctionImpl(const MachineFunct return; } + // Find heap alloc sites and add to list. + for (const auto &MBB : *MF) { + for (const auto &MI : MBB) { + if (MDNode *MD = MI.getHeapAllocMarker()) { + CurFn->HeapAllocSites.push_back(std::make_tuple(getLabelBeforeInsn(&MI), + getLabelAfterInsn(&MI), + dyn_cast(MD))); + } + } + } + CurFn->Annotations = MF->getCodeViewAnnotations(); - CurFn->HeapAllocSites = MF->getCodeViewHeapAllocSites(); CurFn->End = Asm->getFunctionEnd(); Modified: vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h ============================================================================== --- vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h Fri Dec 20 21:55:13 2019 (r355961) @@ -148,7 +148,8 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public D SmallVector ChildBlocks; std::vector> Annotations; - std::vector> HeapAllocSites; + std::vector> + HeapAllocSites; const MCSymbol *Begin = nullptr; const MCSymbol *End = nullptr; Modified: vendor/llvm-project/release-9.x/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp ============================================================================== --- vendor/llvm-project/release-9.x/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp Fri Dec 20 21:45:20 2019 (r355960) +++ vendor/llvm-project/release-9.x/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp Fri Dec 20 21:55:13 2019 (r355961) @@ -588,8 +588,8 @@ void IRTranslator::emitSwitchCase(SwitchCG::CaseBlock Register CondRHS = getOrCreateVReg(*CB.CmpRHS); Cond = MIB.buildICmp(CB.PredInfo.Pred, i1Ty, CondLHS, CondRHS).getReg(0); } else { - assert(CB.PredInfo.Pred == CmpInst::ICMP_ULE && - "Can only handle ULE ranges"); + assert(CB.PredInfo.Pred == CmpInst::ICMP_SLE && + "Can only handle SLE ranges"); const APInt& Low = cast(CB.CmpLHS)->getValue(); const APInt& High = cast(CB.CmpRHS)->getValue(); @@ -598,7 +598,7 @@ void IRTranslator::emitSwitchCase(SwitchCG::CaseBlock if (cast(CB.CmpLHS)->isMinValue(true)) { Register CondRHS = getOrCreateVReg(*CB.CmpRHS); Cond = - MIB.buildICmp(CmpInst::ICMP_ULE, i1Ty, CmpOpReg, CondRHS).getReg(0); + MIB.buildICmp(CmpInst::ICMP_SLE, i1Ty, CmpOpReg, CondRHS).getReg(0); } else { const LLT &CmpTy = MRI->getType(CmpOpReg); auto Sub = MIB.buildSub({CmpTy}, CmpOpReg, CondLHS); @@ -728,7 +728,7 @@ bool IRTranslator::lowerSwitchRangeWorkItem(SwitchCG:: MHS = nullptr; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Fri Dec 20 21:56:45 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D18C41E4C09; Fri, 20 Dec 2019 21:56:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47fjJF606Fz4TSg; Fri, 20 Dec 2019 21:56:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C819C55A2; Fri, 20 Dec 2019 21:56:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBKLujEJ016627; Fri, 20 Dec 2019 21:56:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBKLujoQ016624; Fri, 20 Dec 2019 21:56:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912202156.xBKLujoQ016624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 20 Dec 2019 21:56:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355963 - in vendor/llvm-project/llvmorg-9.0.1: . clang/include/clang/CodeGen clang/lib/AST clang/lib/CodeGen clang/lib/Driver/ToolChains clang/lib/Sema compiler-rt/lib/profile lld/COFF... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/llvmorg-9.0.1: . clang/include/clang/CodeGen clang/lib/AST clang/lib/CodeGen clang/lib/Driver/ToolChains clang/lib/Sema compiler-rt/lib/profile lld/COFF lld/ELF lld/docs lldb/so... X-SVN-Commit-Revision: 355963 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Dec 2019 21:56:45 -0000 Author: dim Date: Fri Dec 20 21:56:45 2019 New Revision: 355963 URL: https://svnweb.freebsd.org/changeset/base/355963 Log: Tag vendor import of llvm-project llvmorg-9.0.1. Added: vendor/llvm-project/llvmorg-9.0.1/ - copied from r355955, vendor/llvm-project/release-9.x/ vendor/llvm-project/llvmorg-9.0.1/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp vendor/llvm-project/llvmorg-9.0.1/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h Replaced: vendor/llvm-project/llvmorg-9.0.1/clang/include/clang/CodeGen/CGFunctionInfo.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h vendor/llvm-project/llvmorg-9.0.1/clang/lib/AST/ExprConstant.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp vendor/llvm-project/llvmorg-9.0.1/clang/lib/CodeGen/CGExpr.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/lib/CodeGen/CGExpr.cpp vendor/llvm-project/llvmorg-9.0.1/clang/lib/CodeGen/MicrosoftCXXABI.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/lib/CodeGen/MicrosoftCXXABI.cpp vendor/llvm-project/llvmorg-9.0.1/clang/lib/Driver/ToolChains/Linux.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/lib/Driver/ToolChains/Linux.cpp vendor/llvm-project/llvmorg-9.0.1/clang/lib/Sema/SemaDecl.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/lib/Sema/SemaDecl.cpp vendor/llvm-project/llvmorg-9.0.1/clang/lib/Sema/SemaType.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/clang/lib/Sema/SemaType.cpp vendor/llvm-project/llvmorg-9.0.1/compiler-rt/lib/profile/InstrProfilingUtil.c - copied unchanged from r355961, vendor/llvm-project/release-9.x/compiler-rt/lib/profile/InstrProfilingUtil.c vendor/llvm-project/llvmorg-9.0.1/lld/COFF/Driver.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/lld/COFF/Driver.cpp vendor/llvm-project/llvmorg-9.0.1/lld/ELF/Symbols.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/lld/ELF/Symbols.h vendor/llvm-project/llvmorg-9.0.1/lld/docs/ReleaseNotes.rst - copied unchanged from r355961, vendor/llvm-project/release-9.x/lld/docs/ReleaseNotes.rst vendor/llvm-project/llvmorg-9.0.1/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/llvm-project/llvmorg-9.0.1/lldb/source/Symbol/Symtab.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/lldb/source/Symbol/Symtab.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/include/llvm/CodeGen/MachineFunction.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineFunction.h vendor/llvm-project/llvmorg-9.0.1/llvm/include/llvm/CodeGen/MachineInstr.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/MachineInstr.h vendor/llvm-project/llvmorg-9.0.1/llvm/include/llvm/CodeGen/StackProtector.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/include/llvm/CodeGen/StackProtector.h vendor/llvm-project/llvmorg-9.0.1/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h vendor/llvm-project/llvmorg-9.0.1/llvm/include/llvm/Transforms/Scalar/GVN.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/include/llvm/Transforms/Scalar/GVN.h vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/MachineFunction.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/MachineFunction.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/MachineInstr.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/MachineInstr.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/CodeGen/StackProtector.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/CodeGen/StackProtector.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Support/ARMTargetParser.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Support/ARMTargetParser.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/ARM/ARM.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/ARM/ARM.td vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/PowerPC/P9InstrResources.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/P9InstrResources.td vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/PowerPC/PPCInstr64Bit.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCInstr64Bit.td vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/PowerPC/PPCInstrInfo.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/RISCV/RISCVRegisterInfo.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/RISCV/RISCVRegisterInfo.h vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86FrameLowering.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86FrameLowering.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86FrameLowering.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86FrameLowering.h vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86ISelLowering.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86ISelLowering.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86ISelLowering.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86ISelLowering.h vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86InstrInfo.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86InstrInfo.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86MachineFunctionInfo.h - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86MachineFunctionInfo.h vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Target/X86/X86RegisterInfo.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Transforms/Scalar/GVN.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Transforms/Scalar/GVN.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/lib/Transforms/Scalar/SROA.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/lib/Transforms/Scalar/SROA.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp vendor/llvm-project/llvmorg-9.0.1/llvm/tools/llvm-objcopy/ObjcopyOpts.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/tools/llvm-objcopy/ObjcopyOpts.td vendor/llvm-project/llvmorg-9.0.1/llvm/tools/llvm-objcopy/StripOpts.td - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/tools/llvm-objcopy/StripOpts.td vendor/llvm-project/llvmorg-9.0.1/llvm/tools/opt/opt.cpp - copied unchanged from r355961, vendor/llvm-project/release-9.x/llvm/tools/opt/opt.cpp Copied: vendor/llvm-project/llvmorg-9.0.1/clang/include/clang/CodeGen/CGFunctionInfo.h (from r355961, vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/llvmorg-9.0.1/clang/include/clang/CodeGen/CGFunctionInfo.h Fri Dec 20 21:56:45 2019 (r355963, copy of r355961, vendor/llvm-project/release-9.x/clang/include/clang/CodeGen/CGFunctionInfo.h) @@ -0,0 +1,714 @@ +//==-- CGFunctionInfo.h - Representation of function argument/return types -==// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// Defines CGFunctionInfo and associated types used in representing the +// LLVM source types and ABI-coerced types for function arguments and +// return values. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_CODEGEN_CGFUNCTIONINFO_H +#define LLVM_CLANG_CODEGEN_CGFUNCTIONINFO_H + +#include "clang/AST/Attr.h" +#include "clang/AST/CanonicalType.h" +#include "clang/AST/CharUnits.h" +#include "clang/AST/Decl.h" +#include "clang/AST/Type.h" +#include "llvm/IR/DerivedTypes.h" +#include "llvm/ADT/FoldingSet.h" +#include "llvm/Support/TrailingObjects.h" +#include + +namespace clang { +namespace CodeGen { + +/// ABIArgInfo - Helper class to encapsulate information about how a +/// specific C type should be passed to or returned from a function. +class ABIArgInfo { +public: + enum Kind : uint8_t { + /// Direct - Pass the argument directly using the normal converted LLVM + /// type, or by coercing to another specified type stored in + /// 'CoerceToType'). If an offset is specified (in UIntData), then the + /// argument passed is offset by some number of bytes in the memory + /// representation. A dummy argument is emitted before the real argument + /// if the specified type stored in "PaddingType" is not zero. + Direct, + + /// Extend - Valid only for integer argument types. Same as 'direct' + /// but also emit a zero/sign extension attribute. + Extend, + + /// Indirect - Pass the argument indirectly via a hidden pointer + /// with the specified alignment (0 indicates default alignment). + Indirect, + + /// Ignore - Ignore the argument (treat as void). Useful for void and + /// empty structs. + Ignore, + + /// Expand - Only valid for aggregate argument types. The structure should + /// be expanded into consecutive arguments for its constituent fields. + /// Currently expand is only allowed on structures whose fields + /// are all scalar types or are themselves expandable types. + Expand, + + /// CoerceAndExpand - Only valid for aggregate argument types. The + /// structure should be expanded into consecutive arguments corresponding + /// to the non-array elements of the type stored in CoerceToType. + /// Array elements in the type are assumed to be padding and skipped. + CoerceAndExpand, + + /// InAlloca - Pass the argument directly using the LLVM inalloca attribute. + /// This is similar to indirect with byval, except it only applies to + /// arguments stored in memory and forbids any implicit copies. When + /// applied to a return type, it means the value is returned indirectly via + /// an implicit sret parameter stored in the argument struct. + InAlloca, + KindFirst = Direct, + KindLast = InAlloca + }; + +private: + llvm::Type *TypeData; // canHaveCoerceToType() + union { + llvm::Type *PaddingType; // canHavePaddingType() + llvm::Type *UnpaddedCoerceAndExpandType; // isCoerceAndExpand() + }; + union { + unsigned DirectOffset; // isDirect() || isExtend() + unsigned IndirectAlign; // isIndirect() + unsigned AllocaFieldIndex; // isInAlloca() + }; + Kind TheKind; + bool PaddingInReg : 1; + bool InAllocaSRet : 1; // isInAlloca() + bool IndirectByVal : 1; // isIndirect() + bool IndirectRealign : 1; // isIndirect() + bool SRetAfterThis : 1; // isIndirect() + bool InReg : 1; // isDirect() || isExtend() || isIndirect() + bool CanBeFlattened: 1; // isDirect() + bool SignExt : 1; // isExtend() + + bool canHavePaddingType() const { + return isDirect() || isExtend() || isIndirect() || isExpand(); + } + void setPaddingType(llvm::Type *T) { + assert(canHavePaddingType()); + PaddingType = T; + } + + void setUnpaddedCoerceToType(llvm::Type *T) { + assert(isCoerceAndExpand()); + UnpaddedCoerceAndExpandType = T; + } + +public: + ABIArgInfo(Kind K = Direct) + : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0), + TheKind(K), PaddingInReg(false), InAllocaSRet(false), + IndirectByVal(false), IndirectRealign(false), SRetAfterThis(false), + InReg(false), CanBeFlattened(false), SignExt(false) {} + + static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0, + llvm::Type *Padding = nullptr, + bool CanBeFlattened = true) { + auto AI = ABIArgInfo(Direct); + AI.setCoerceToType(T); + AI.setPaddingType(Padding); + AI.setDirectOffset(Offset); + AI.setCanBeFlattened(CanBeFlattened); + return AI; + } + static ABIArgInfo getDirectInReg(llvm::Type *T = nullptr) { + auto AI = getDirect(T); + AI.setInReg(true); + return AI; + } + + static ABIArgInfo getSignExtend(QualType Ty, llvm::Type *T = nullptr) { + assert(Ty->isIntegralOrEnumerationType() && "Unexpected QualType"); + auto AI = ABIArgInfo(Extend); + AI.setCoerceToType(T); + AI.setPaddingType(nullptr); + AI.setDirectOffset(0); + AI.setSignExt(true); + return AI; + } + + static ABIArgInfo getZeroExtend(QualType Ty, llvm::Type *T = nullptr) { + assert(Ty->isIntegralOrEnumerationType() && "Unexpected QualType"); + auto AI = ABIArgInfo(Extend); + AI.setCoerceToType(T); + AI.setPaddingType(nullptr); + AI.setDirectOffset(0); + AI.setSignExt(false); + return AI; + } + + // ABIArgInfo will record the argument as being extended based on the sign + // of its type. + static ABIArgInfo getExtend(QualType Ty, llvm::Type *T = nullptr) { + assert(Ty->isIntegralOrEnumerationType() && "Unexpected QualType"); + if (Ty->hasSignedIntegerRepresentation()) + return getSignExtend(Ty, T); + return getZeroExtend(Ty, T); + } + + static ABIArgInfo getExtendInReg(QualType Ty, llvm::Type *T = nullptr) { + auto AI = getExtend(Ty, T); + AI.setInReg(true); + return AI; + } + static ABIArgInfo getIgnore() { + return ABIArgInfo(Ignore); + } + static ABIArgInfo getIndirect(CharUnits Alignment, bool ByVal = true, + bool Realign = false, + llvm::Type *Padding = nullptr) { + auto AI = ABIArgInfo(Indirect); + AI.setIndirectAlign(Alignment); + AI.setIndirectByVal(ByVal); + AI.setIndirectRealign(Realign); + AI.setSRetAfterThis(false); + AI.setPaddingType(Padding); + return AI; + } + static ABIArgInfo getIndirectInReg(CharUnits Alignment, bool ByVal = true, + bool Realign = false) { + auto AI = getIndirect(Alignment, ByVal, Realign); + AI.setInReg(true); + return AI; + } + static ABIArgInfo getInAlloca(unsigned FieldIndex) { + auto AI = ABIArgInfo(InAlloca); + AI.setInAllocaFieldIndex(FieldIndex); + return AI; + } + static ABIArgInfo getExpand() { + auto AI = ABIArgInfo(Expand); + AI.setPaddingType(nullptr); + return AI; + } + static ABIArgInfo getExpandWithPadding(bool PaddingInReg, + llvm::Type *Padding) { + auto AI = getExpand(); + AI.setPaddingInReg(PaddingInReg); + AI.setPaddingType(Padding); + return AI; + } + + /// \param unpaddedCoerceToType The coerce-to type with padding elements + /// removed, canonicalized to a single element if it would otherwise + /// have exactly one element. + static ABIArgInfo getCoerceAndExpand(llvm::StructType *coerceToType, + llvm::Type *unpaddedCoerceToType) { +#ifndef NDEBUG + // Sanity checks on unpaddedCoerceToType. + + // Assert that we only have a struct type if there are multiple elements. + auto unpaddedStruct = dyn_cast(unpaddedCoerceToType); + assert(!unpaddedStruct || unpaddedStruct->getNumElements() != 1); + + // Assert that all the non-padding elements have a corresponding element + // in the unpadded type. + unsigned unpaddedIndex = 0; + for (auto eltType : coerceToType->elements()) { + if (isPaddingForCoerceAndExpand(eltType)) continue; + if (unpaddedStruct) { + assert(unpaddedStruct->getElementType(unpaddedIndex) == eltType); + } else { + assert(unpaddedIndex == 0 && unpaddedCoerceToType == eltType); + } + unpaddedIndex++; + } + + // Assert that there aren't extra elements in the unpadded type. + if (unpaddedStruct) { + assert(unpaddedStruct->getNumElements() == unpaddedIndex); + } else { + assert(unpaddedIndex == 1); + } +#endif + + auto AI = ABIArgInfo(CoerceAndExpand); + AI.setCoerceToType(coerceToType); + AI.setUnpaddedCoerceToType(unpaddedCoerceToType); + return AI; + } + + static bool isPaddingForCoerceAndExpand(llvm::Type *eltType) { + if (eltType->isArrayTy()) { + assert(eltType->getArrayElementType()->isIntegerTy(8)); + return true; + } else { + return false; + } + } + + Kind getKind() const { return TheKind; } + bool isDirect() const { return TheKind == Direct; } + bool isInAlloca() const { return TheKind == InAlloca; } + bool isExtend() const { return TheKind == Extend; } + bool isIgnore() const { return TheKind == Ignore; } + bool isIndirect() const { return TheKind == Indirect; } + bool isExpand() const { return TheKind == Expand; } + bool isCoerceAndExpand() const { return TheKind == CoerceAndExpand; } + + bool canHaveCoerceToType() const { + return isDirect() || isExtend() || isCoerceAndExpand(); + } + + // Direct/Extend accessors + unsigned getDirectOffset() const { + assert((isDirect() || isExtend()) && "Not a direct or extend kind"); + return DirectOffset; + } + void setDirectOffset(unsigned Offset) { + assert((isDirect() || isExtend()) && "Not a direct or extend kind"); + DirectOffset = Offset; + } + + bool isSignExt() const { + assert(isExtend() && "Invalid kind!"); + return SignExt; + } + void setSignExt(bool SExt) { + assert(isExtend() && "Invalid kind!"); + SignExt = SExt; + } + + llvm::Type *getPaddingType() const { + return (canHavePaddingType() ? PaddingType : nullptr); + } + + bool getPaddingInReg() const { + return PaddingInReg; + } + void setPaddingInReg(bool PIR) { + PaddingInReg = PIR; + } + + llvm::Type *getCoerceToType() const { + assert(canHaveCoerceToType() && "Invalid kind!"); + return TypeData; + } + + void setCoerceToType(llvm::Type *T) { + assert(canHaveCoerceToType() && "Invalid kind!"); + TypeData = T; + } + + llvm::StructType *getCoerceAndExpandType() const { + assert(isCoerceAndExpand()); + return cast(TypeData); + } + + llvm::Type *getUnpaddedCoerceAndExpandType() const { + assert(isCoerceAndExpand()); + return UnpaddedCoerceAndExpandType; + } + + ArrayRefgetCoerceAndExpandTypeSequence() const { + assert(isCoerceAndExpand()); + if (auto structTy = + dyn_cast(UnpaddedCoerceAndExpandType)) { + return structTy->elements(); + } else { + return llvm::makeArrayRef(&UnpaddedCoerceAndExpandType, 1); + } + } + + bool getInReg() const { + assert((isDirect() || isExtend() || isIndirect()) && "Invalid kind!"); + return InReg; + } + + void setInReg(bool IR) { + assert((isDirect() || isExtend() || isIndirect()) && "Invalid kind!"); + InReg = IR; + } + + // Indirect accessors + CharUnits getIndirectAlign() const { + assert(isIndirect() && "Invalid kind!"); + return CharUnits::fromQuantity(IndirectAlign); + } + void setIndirectAlign(CharUnits IA) { + assert(isIndirect() && "Invalid kind!"); + IndirectAlign = IA.getQuantity(); + } + + bool getIndirectByVal() const { + assert(isIndirect() && "Invalid kind!"); + return IndirectByVal; + } + void setIndirectByVal(bool IBV) { + assert(isIndirect() && "Invalid kind!"); + IndirectByVal = IBV; + } + + bool getIndirectRealign() const { + assert(isIndirect() && "Invalid kind!"); + return IndirectRealign; + } + void setIndirectRealign(bool IR) { + assert(isIndirect() && "Invalid kind!"); + IndirectRealign = IR; + } + + bool isSRetAfterThis() const { + assert(isIndirect() && "Invalid kind!"); + return SRetAfterThis; + } + void setSRetAfterThis(bool AfterThis) { + assert(isIndirect() && "Invalid kind!"); + SRetAfterThis = AfterThis; + } + + unsigned getInAllocaFieldIndex() const { + assert(isInAlloca() && "Invalid kind!"); + return AllocaFieldIndex; + } + void setInAllocaFieldIndex(unsigned FieldIndex) { + assert(isInAlloca() && "Invalid kind!"); + AllocaFieldIndex = FieldIndex; + } + + /// Return true if this field of an inalloca struct should be returned + /// to implement a struct return calling convention. + bool getInAllocaSRet() const { + assert(isInAlloca() && "Invalid kind!"); + return InAllocaSRet; + } + + void setInAllocaSRet(bool SRet) { + assert(isInAlloca() && "Invalid kind!"); + InAllocaSRet = SRet; + } + + bool getCanBeFlattened() const { + assert(isDirect() && "Invalid kind!"); + return CanBeFlattened; + } + + void setCanBeFlattened(bool Flatten) { + assert(isDirect() && "Invalid kind!"); + CanBeFlattened = Flatten; + } + + void dump() const; +}; + +/// A class for recording the number of arguments that a function +/// signature requires. +class RequiredArgs { + /// The number of required arguments, or ~0 if the signature does + /// not permit optional arguments. + unsigned NumRequired; +public: + enum All_t { All }; + + RequiredArgs(All_t _) : NumRequired(~0U) {} + explicit RequiredArgs(unsigned n) : NumRequired(n) { + assert(n != ~0U); + } + + /// Compute the arguments required by the given formal prototype, + /// given that there may be some additional, non-formal arguments + /// in play. + /// + /// If FD is not null, this will consider pass_object_size params in FD. + static RequiredArgs forPrototypePlus(const FunctionProtoType *prototype, + unsigned additional) { + if (!prototype->isVariadic()) return All; + + if (prototype->hasExtParameterInfos()) + additional += llvm::count_if( + prototype->getExtParameterInfos(), + [](const FunctionProtoType::ExtParameterInfo &ExtInfo) { + return ExtInfo.hasPassObjectSize(); + }); + + return RequiredArgs(prototype->getNumParams() + additional); + } + + static RequiredArgs forPrototypePlus(CanQual prototype, + unsigned additional) { + return forPrototypePlus(prototype.getTypePtr(), additional); + } + + static RequiredArgs forPrototype(const FunctionProtoType *prototype) { + return forPrototypePlus(prototype, 0); + } + + static RequiredArgs forPrototype(CanQual prototype) { + return forPrototypePlus(prototype.getTypePtr(), 0); + } + + bool allowsOptionalArgs() const { return NumRequired != ~0U; } + unsigned getNumRequiredArgs() const { + assert(allowsOptionalArgs()); + return NumRequired; + } + + unsigned getOpaqueData() const { return NumRequired; } + static RequiredArgs getFromOpaqueData(unsigned value) { + if (value == ~0U) return All; + return RequiredArgs(value); + } +}; + +// Implementation detail of CGFunctionInfo, factored out so it can be named +// in the TrailingObjects base class of CGFunctionInfo. +struct CGFunctionInfoArgInfo { + CanQualType type; + ABIArgInfo info; +}; + +/// CGFunctionInfo - Class to encapsulate the information about a +/// function definition. +class CGFunctionInfo final + : public llvm::FoldingSetNode, + private llvm::TrailingObjects { + typedef CGFunctionInfoArgInfo ArgInfo; + typedef FunctionProtoType::ExtParameterInfo ExtParameterInfo; + + /// The LLVM::CallingConv to use for this function (as specified by the + /// user). + unsigned CallingConvention : 8; + + /// The LLVM::CallingConv to actually use for this function, which may + /// depend on the ABI. + unsigned EffectiveCallingConvention : 8; + + /// The clang::CallingConv that this was originally created with. + unsigned ASTCallingConvention : 6; + + /// Whether this is an instance method. + unsigned InstanceMethod : 1; + + /// Whether this is a chain call. + unsigned ChainCall : 1; + + /// Whether this function is noreturn. + unsigned NoReturn : 1; + + /// Whether this function is returns-retained. + unsigned ReturnsRetained : 1; + + /// Whether this function saved caller registers. + unsigned NoCallerSavedRegs : 1; + + /// How many arguments to pass inreg. + unsigned HasRegParm : 1; + unsigned RegParm : 3; + + /// Whether this function has nocf_check attribute. + unsigned NoCfCheck : 1; + + RequiredArgs Required; + + /// The struct representing all arguments passed in memory. Only used when + /// passing non-trivial types with inalloca. Not part of the profile. + llvm::StructType *ArgStruct; + unsigned ArgStructAlign : 31; + unsigned HasExtParameterInfos : 1; + + unsigned NumArgs; + + ArgInfo *getArgsBuffer() { + return getTrailingObjects(); + } + const ArgInfo *getArgsBuffer() const { + return getTrailingObjects(); + } + + ExtParameterInfo *getExtParameterInfosBuffer() { + return getTrailingObjects(); + } + const ExtParameterInfo *getExtParameterInfosBuffer() const{ + return getTrailingObjects(); + } + + CGFunctionInfo() : Required(RequiredArgs::All) {} + +public: + static CGFunctionInfo *create(unsigned llvmCC, + bool instanceMethod, + bool chainCall, + const FunctionType::ExtInfo &extInfo, + ArrayRef paramInfos, + CanQualType resultType, + ArrayRef argTypes, + RequiredArgs required); + void operator delete(void *p) { ::operator delete(p); } + + // Friending class TrailingObjects is apparently not good enough for MSVC, + // so these have to be public. + friend class TrailingObjects; + size_t numTrailingObjects(OverloadToken) const { + return NumArgs + 1; + } + size_t numTrailingObjects(OverloadToken) const { + return (HasExtParameterInfos ? NumArgs : 0); + } + + typedef const ArgInfo *const_arg_iterator; + typedef ArgInfo *arg_iterator; + + typedef llvm::iterator_range arg_range; + typedef llvm::iterator_range const_arg_range; + + arg_range arguments() { return arg_range(arg_begin(), arg_end()); } + const_arg_range arguments() const { + return const_arg_range(arg_begin(), arg_end()); + } + + const_arg_iterator arg_begin() const { return getArgsBuffer() + 1; } + const_arg_iterator arg_end() const { return getArgsBuffer() + 1 + NumArgs; } + arg_iterator arg_begin() { return getArgsBuffer() + 1; } + arg_iterator arg_end() { return getArgsBuffer() + 1 + NumArgs; } + + unsigned arg_size() const { return NumArgs; } + + bool isVariadic() const { return Required.allowsOptionalArgs(); } + RequiredArgs getRequiredArgs() const { return Required; } + unsigned getNumRequiredArgs() const { + return isVariadic() ? getRequiredArgs().getNumRequiredArgs() : arg_size(); + } + + bool isInstanceMethod() const { return InstanceMethod; } + + bool isChainCall() const { return ChainCall; } + + bool isNoReturn() const { return NoReturn; } + + /// In ARC, whether this function retains its return value. This + /// is not always reliable for call sites. + bool isReturnsRetained() const { return ReturnsRetained; } + + /// Whether this function no longer saves caller registers. + bool isNoCallerSavedRegs() const { return NoCallerSavedRegs; } + + /// Whether this function has nocf_check attribute. + bool isNoCfCheck() const { return NoCfCheck; } + + /// getASTCallingConvention() - Return the AST-specified calling + /// convention. + CallingConv getASTCallingConvention() const { + return CallingConv(ASTCallingConvention); + } + + /// getCallingConvention - Return the user specified calling + /// convention, which has been translated into an LLVM CC. + unsigned getCallingConvention() const { return CallingConvention; } + + /// getEffectiveCallingConvention - Return the actual calling convention to + /// use, which may depend on the ABI. + unsigned getEffectiveCallingConvention() const { + return EffectiveCallingConvention; + } + void setEffectiveCallingConvention(unsigned Value) { + EffectiveCallingConvention = Value; + } + + bool getHasRegParm() const { return HasRegParm; } + unsigned getRegParm() const { return RegParm; } + + FunctionType::ExtInfo getExtInfo() const { + return FunctionType::ExtInfo(isNoReturn(), getHasRegParm(), getRegParm(), + getASTCallingConvention(), isReturnsRetained(), + isNoCallerSavedRegs(), isNoCfCheck()); + } + + CanQualType getReturnType() const { return getArgsBuffer()[0].type; } + + ABIArgInfo &getReturnInfo() { return getArgsBuffer()[0].info; } + const ABIArgInfo &getReturnInfo() const { return getArgsBuffer()[0].info; } + + ArrayRef getExtParameterInfos() const { + if (!HasExtParameterInfos) return {}; + return llvm::makeArrayRef(getExtParameterInfosBuffer(), NumArgs); + } + ExtParameterInfo getExtParameterInfo(unsigned argIndex) const { + assert(argIndex <= NumArgs); + if (!HasExtParameterInfos) return ExtParameterInfo(); + return getExtParameterInfos()[argIndex]; + } + + /// Return true if this function uses inalloca arguments. + bool usesInAlloca() const { return ArgStruct; } + + /// Get the struct type used to represent all the arguments in memory. + llvm::StructType *getArgStruct() const { return ArgStruct; } + CharUnits getArgStructAlignment() const { + return CharUnits::fromQuantity(ArgStructAlign); + } + void setArgStruct(llvm::StructType *Ty, CharUnits Align) { + ArgStruct = Ty; + ArgStructAlign = Align.getQuantity(); + } + + void Profile(llvm::FoldingSetNodeID &ID) { + ID.AddInteger(getASTCallingConvention()); + ID.AddBoolean(InstanceMethod); + ID.AddBoolean(ChainCall); + ID.AddBoolean(NoReturn); + ID.AddBoolean(ReturnsRetained); + ID.AddBoolean(NoCallerSavedRegs); + ID.AddBoolean(HasRegParm); + ID.AddInteger(RegParm); + ID.AddBoolean(NoCfCheck); + ID.AddInteger(Required.getOpaqueData()); + ID.AddBoolean(HasExtParameterInfos); + if (HasExtParameterInfos) { + for (auto paramInfo : getExtParameterInfos()) + ID.AddInteger(paramInfo.getOpaqueValue()); + } + getReturnType().Profile(ID); + for (const auto &I : arguments()) + I.type.Profile(ID); + } + static void Profile(llvm::FoldingSetNodeID &ID, + bool InstanceMethod, + bool ChainCall, + const FunctionType::ExtInfo &info, + ArrayRef paramInfos, + RequiredArgs required, + CanQualType resultType, + ArrayRef argTypes) { + ID.AddInteger(info.getCC()); + ID.AddBoolean(InstanceMethod); + ID.AddBoolean(ChainCall); + ID.AddBoolean(info.getNoReturn()); + ID.AddBoolean(info.getProducesResult()); + ID.AddBoolean(info.getNoCallerSavedRegs()); + ID.AddBoolean(info.getHasRegParm()); + ID.AddInteger(info.getRegParm()); + ID.AddBoolean(info.getNoCfCheck()); + ID.AddInteger(required.getOpaqueData()); + ID.AddBoolean(!paramInfos.empty()); + if (!paramInfos.empty()) { + for (auto paramInfo : paramInfos) + ID.AddInteger(paramInfo.getOpaqueValue()); + } + resultType.Profile(ID); + for (ArrayRef::iterator + i = argTypes.begin(), e = argTypes.end(); i != e; ++i) { + i->Profile(ID); + } + } +}; + +} // end namespace CodeGen +} // end namespace clang + +#endif Copied: vendor/llvm-project/llvmorg-9.0.1/clang/lib/AST/ExprConstant.cpp (from r355961, vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/llvmorg-9.0.1/clang/lib/AST/ExprConstant.cpp Fri Dec 20 21:56:45 2019 (r355963, copy of r355961, vendor/llvm-project/release-9.x/clang/lib/AST/ExprConstant.cpp) @@ -0,0 +1,13225 @@ +//===--- ExprConstant.cpp - Expression Constant Evaluator -----------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file implements the Expr constant evaluator. +// +// Constant expression evaluation produces four main results: +// +// * A success/failure flag indicating whether constant folding was successful. +// This is the 'bool' return value used by most of the code in this file. A +// 'false' return value indicates that constant folding has failed, and any +// appropriate diagnostic has already been produced. +// +// * An evaluated result, valid only if constant folding has not failed. +// +// * A flag indicating if evaluation encountered (unevaluated) side-effects. +// These arise in cases such as (sideEffect(), 0) and (sideEffect() || 1), +// where it is possible to determine the evaluated result regardless. +// +// * A set of notes indicating why the evaluation was not a constant expression +// (under the C++11 / C++1y rules only, at the moment), or, if folding failed +// too, why the expression could not be folded. +// +// If we are checking for a potential constant expression, failure to constant +// fold a potential constant sub-expression will be indicated by a 'false' +// return value (the expression could not be folded) and no diagnostic (the +// expression is not necessarily non-constant). +// +//===----------------------------------------------------------------------===// + +#include "clang/AST/APValue.h" +#include "clang/AST/ASTContext.h" +#include "clang/AST/ASTDiagnostic.h" +#include "clang/AST/ASTLambda.h" +#include "clang/AST/CharUnits.h" +#include "clang/AST/CurrentSourceLocExprScope.h" +#include "clang/AST/CXXInheritance.h" +#include "clang/AST/Expr.h" +#include "clang/AST/OSLog.h" +#include "clang/AST/RecordLayout.h" +#include "clang/AST/StmtVisitor.h" +#include "clang/AST/TypeLoc.h" +#include "clang/Basic/Builtins.h" +#include "clang/Basic/FixedPoint.h" +#include "clang/Basic/TargetInfo.h" +#include "llvm/ADT/Optional.h" +#include "llvm/ADT/SmallBitVector.h" +#include "llvm/Support/SaveAndRestore.h" +#include "llvm/Support/raw_ostream.h" +#include +#include + +#define DEBUG_TYPE "exprconstant" + +using namespace clang; +using llvm::APInt; +using llvm::APSInt; +using llvm::APFloat; +using llvm::Optional; + +static bool IsGlobalLValue(APValue::LValueBase B); + +namespace { + struct LValue; + struct CallStackFrame; + struct EvalInfo; + + using SourceLocExprScopeGuard = + CurrentSourceLocExprScope::SourceLocExprScopeGuard; + + static QualType getType(APValue::LValueBase B) { + if (!B) return QualType(); + if (const ValueDecl *D = B.dyn_cast()) { + // FIXME: It's unclear where we're supposed to take the type from, and + // this actually matters for arrays of unknown bound. Eg: + // + // extern int arr[]; void f() { extern int arr[3]; }; + // constexpr int *p = &arr[1]; // valid? + // + // For now, we take the array bound from the most recent declaration. + for (auto *Redecl = cast(D->getMostRecentDecl()); Redecl; + Redecl = cast_or_null(Redecl->getPreviousDecl())) { + QualType T = Redecl->getType(); + if (!T->isIncompleteArrayType()) + return T; + } + return D->getType(); + } + + if (B.is()) + return B.getTypeInfoType(); + + const Expr *Base = B.get(); + + // For a materialized temporary, the type of the temporary we materialized + // may not be the type of the expression. + if (const MaterializeTemporaryExpr *MTE = + dyn_cast(Base)) { + SmallVector CommaLHSs; + SmallVector Adjustments; + const Expr *Temp = MTE->GetTemporaryExpr(); + const Expr *Inner = Temp->skipRValueSubobjectAdjustments(CommaLHSs, + Adjustments); + // Keep any cv-qualifiers from the reference if we generated a temporary + // for it directly. Otherwise use the type after adjustment. + if (!Adjustments.empty()) + return Inner->getType(); + } + + return Base->getType(); + } + + /// Get an LValue path entry, which is known to not be an array index, as a + /// field declaration. + static const FieldDecl *getAsField(APValue::LValuePathEntry E) { + return dyn_cast_or_null(E.getAsBaseOrMember().getPointer()); + } + /// Get an LValue path entry, which is known to not be an array index, as a + /// base class declaration. + static const CXXRecordDecl *getAsBaseClass(APValue::LValuePathEntry E) { + return dyn_cast_or_null(E.getAsBaseOrMember().getPointer()); + } + /// Determine whether this LValue path entry for a base class names a virtual + /// base class. + static bool isVirtualBaseClass(APValue::LValuePathEntry E) { + return E.getAsBaseOrMember().getInt(); + } + + /// Given a CallExpr, try to get the alloc_size attribute. May return null. + static const AllocSizeAttr *getAllocSizeAttr(const CallExpr *CE) { + const FunctionDecl *Callee = CE->getDirectCallee(); + return Callee ? Callee->getAttr() : nullptr; + } + + /// Attempts to unwrap a CallExpr (with an alloc_size attribute) from an Expr. + /// This will look through a single cast. + /// + /// Returns null if we couldn't unwrap a function with alloc_size. + static const CallExpr *tryUnwrapAllocSizeCall(const Expr *E) { + if (!E->getType()->isPointerType()) + return nullptr; + + E = E->IgnoreParens(); + // If we're doing a variable assignment from e.g. malloc(N), there will + // probably be a cast of some kind. In exotic cases, we might also see a + // top-level ExprWithCleanups. Ignore them either way. + if (const auto *FE = dyn_cast(E)) + E = FE->getSubExpr()->IgnoreParens(); + + if (const auto *Cast = dyn_cast(E)) + E = Cast->getSubExpr()->IgnoreParens(); + + if (const auto *CE = dyn_cast(E)) + return getAllocSizeAttr(CE) ? CE : nullptr; + return nullptr; + } + + /// Determines whether or not the given Base contains a call to a function + /// with the alloc_size attribute. + static bool isBaseAnAllocSizeCall(APValue::LValueBase Base) { + const auto *E = Base.dyn_cast(); + return E && E->getType()->isPointerType() && tryUnwrapAllocSizeCall(E); + } + + /// The bound to claim that an array of unknown bound has. + /// The value in MostDerivedArraySize is undefined in this case. So, set it + /// to an arbitrary value that's likely to loudly break things if it's used. + static const uint64_t AssumedSizeForUnsizedArray = + std::numeric_limits::max() / 2; + + /// Determines if an LValue with the given LValueBase will have an unsized + /// array in its designator. + /// Find the path length and type of the most-derived subobject in the given + /// path, and find the size of the containing array, if any. + static unsigned + findMostDerivedSubobject(ASTContext &Ctx, APValue::LValueBase Base, + ArrayRef Path, + uint64_t &ArraySize, QualType &Type, bool &IsArray, + bool &FirstEntryIsUnsizedArray) { + // This only accepts LValueBases from APValues, and APValues don't support + // arrays that lack size info. + assert(!isBaseAnAllocSizeCall(Base) && + "Unsized arrays shouldn't appear here"); + unsigned MostDerivedLength = 0; + Type = getType(Base); + + for (unsigned I = 0, N = Path.size(); I != N; ++I) { + if (Type->isArrayType()) { + const ArrayType *AT = Ctx.getAsArrayType(Type); + Type = AT->getElementType(); + MostDerivedLength = I + 1; + IsArray = true; + + if (auto *CAT = dyn_cast(AT)) { + ArraySize = CAT->getSize().getZExtValue(); + } else { + assert(I == 0 && "unexpected unsized array designator"); + FirstEntryIsUnsizedArray = true; + ArraySize = AssumedSizeForUnsizedArray; + } + } else if (Type->isAnyComplexType()) { + const ComplexType *CT = Type->castAs(); + Type = CT->getElementType(); + ArraySize = 2; + MostDerivedLength = I + 1; + IsArray = true; + } else if (const FieldDecl *FD = getAsField(Path[I])) { + Type = FD->getType(); + ArraySize = 0; + MostDerivedLength = I + 1; + IsArray = false; + } else { + // Path[I] describes a base class. + ArraySize = 0; + IsArray = false; + } + } + return MostDerivedLength; + } + + // The order of this enum is important for diagnostics. + enum CheckSubobjectKind { + CSK_Base, CSK_Derived, CSK_Field, CSK_ArrayToPointer, CSK_ArrayIndex, + CSK_Real, CSK_Imag + }; + + /// A path from a glvalue to a subobject of that glvalue. + struct SubobjectDesignator { + /// True if the subobject was named in a manner not supported by C++11. Such + /// lvalues can still be folded, but they are not core constant expressions + /// and we cannot perform lvalue-to-rvalue conversions on them. + unsigned Invalid : 1; + + /// Is this a pointer one past the end of an object? + unsigned IsOnePastTheEnd : 1; + + /// Indicator of whether the first entry is an unsized array. + unsigned FirstEntryIsAnUnsizedArray : 1; + + /// Indicator of whether the most-derived object is an array element. + unsigned MostDerivedIsArrayElement : 1; + + /// The length of the path to the most-derived object of which this is a + /// subobject. + unsigned MostDerivedPathLength : 28; + + /// The size of the array of which the most-derived object is an element. + /// This will always be 0 if the most-derived object is not an array + /// element. 0 is not an indicator of whether or not the most-derived object + /// is an array, however, because 0-length arrays are allowed. + /// + /// If the current array is an unsized array, the value of this is + /// undefined. + uint64_t MostDerivedArraySize; + + /// The type of the most derived object referred to by this address. + QualType MostDerivedType; + + typedef APValue::LValuePathEntry PathEntry; + + /// The entries on the path from the glvalue to the designated subobject. + SmallVector Entries; + + SubobjectDesignator() : Invalid(true) {} + + explicit SubobjectDesignator(QualType T) + : Invalid(false), IsOnePastTheEnd(false), + FirstEntryIsAnUnsizedArray(false), MostDerivedIsArrayElement(false), + MostDerivedPathLength(0), MostDerivedArraySize(0), + MostDerivedType(T) {} + + SubobjectDesignator(ASTContext &Ctx, const APValue &V) + : Invalid(!V.isLValue() || !V.hasLValuePath()), IsOnePastTheEnd(false), + FirstEntryIsAnUnsizedArray(false), MostDerivedIsArrayElement(false), + MostDerivedPathLength(0), MostDerivedArraySize(0) { + assert(V.isLValue() && "Non-LValue used to make an LValue designator?"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Sat Dec 21 19:22:20 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F64D1DAC9E; Sat, 21 Dec 2019 19:22:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47gFqc2MWkz4YBN; Sat, 21 Dec 2019 19:22:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32C321BFBE; Sat, 21 Dec 2019 19:22:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBLJMKO3075998; Sat, 21 Dec 2019 19:22:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBLJMKPe075997; Sat, 21 Dec 2019 19:22:20 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912211922.xBLJMKPe075997@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 21 Dec 2019 19:22:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355986 - vendor/llvm-project/llvmorg-9.0.1 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/llvmorg-9.0.1 X-SVN-Commit-Revision: 355986 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Dec 2019 19:22:20 -0000 Author: dim Date: Sat Dec 21 19:22:19 2019 New Revision: 355986 URL: https://svnweb.freebsd.org/changeset/base/355986 Log: Prepare to re-tag llvmorg-9.0.1. Deleted: vendor/llvm-project/llvmorg-9.0.1/ From owner-svn-src-vendor@freebsd.org Sat Dec 21 19:23:34 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 474301DAD63; Sat, 21 Dec 2019 19:23:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47gFs212wmz4YK5; Sat, 21 Dec 2019 19:23:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 066581BFD3; Sat, 21 Dec 2019 19:23:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBLJNX2f079280; Sat, 21 Dec 2019 19:23:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBLJNXjv079279; Sat, 21 Dec 2019 19:23:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201912211923.xBLJNXjv079279@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 21 Dec 2019 19:23:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r355987 - vendor/llvm-project/llvmorg-9.0.1 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/llvmorg-9.0.1 X-SVN-Commit-Revision: 355987 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Dec 2019 19:23:34 -0000 Author: dim Date: Sat Dec 21 19:23:33 2019 New Revision: 355987 URL: https://svnweb.freebsd.org/changeset/base/355987 Log: Tag vendor import of llvm-project llvmorg-9.0.1. Added: vendor/llvm-project/llvmorg-9.0.1/ - copied from r355986, vendor/llvm-project/release-9.x/