[clang] [libcxx] [Clang] Add __common_type builtin (PR #99473)

2024-07-25 Thread A. Jiang via cfe-commits
@@ -1511,6 +1511,43 @@ Attributes (N2335) C2 ``#embed`` (N3017) C23 C89, C++

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2024-06-22 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: @Endilll I think it's ready now. Sorry for late replying again. https://github.com/llvm/llvm-project/pull/68846 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2024-06-22 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/68846 >From c38259bd70993a96a35ce4f94790e420847786e2 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Sun, 23 Jun 2024 01:39:42 +0800 Subject: [PATCH] [Docs][Clang] DR status for C++23-era papers in

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2024-06-22 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/68846 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Implement P2280R4 Using unknown pointers and references in constant expressions (PR #95474)

2024-06-13 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/95474 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Implement P2280R4 Using unknown pointers and references in constant expressions (PR #95474)

2024-06-13 Thread A. Jiang via cfe-commits
@@ -3300,6 +3308,11 @@ static bool HandleLValueComplexElement(EvalInfo , const Expr *E, static bool evaluateVarDeclInit(EvalInfo , const Expr *E, const VarDecl *VD, CallStackFrame *Frame, unsigned Version,

[clang] [Clang] Implement P2280R4 Using unknown pointers and references in constant expressions (PR #95474)

2024-06-13 Thread A. Jiang via cfe-commits
@@ -1961,7 +1961,8 @@ namespace ConstexprConstructorRecovery { namespace Lifetime { void f() { -constexpr int = n; // expected-error {{constant expression}} expected-note {{use of reference outside its lifetime}} expected-warning {{not yet bound to a value}} +

[clang] [clang] Implement a bitwise_copyable builtin type trait. (PR #86512)

2024-06-06 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: IIUC this intrinsic is unrelated to assignment operators. Do you have any plan for `__is_bitwise_assignable`, which should determine whether the assignment operator equivalently copies the value representation, possibly modulo the vptrs? ```C++ struct Cat {}; //

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-05-21 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: This PR should fix #54018. https://github.com/llvm/llvm-project/pull/74775 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++23] [CLANG] Adding C++23 constexpr math functions: fmin and frexp. (PR #88978)

2024-04-29 Thread A. Jiang via cfe-commits
@@ -0,0 +1,57 @@ +// RUN: %clang_cc1 -DWIN -verify -std=c++23 -fsyntax-only %s +// RUN: %clang_cc1 -verify -std=c++23 -fsyntax-only %s + +// expected-no-diagnostics + + +#ifdef WIN +#define INFINITY ((float)(1e+300 * 1e+300)) +#define NAN (-(float)(INFINITY * 0.0F)) +#else

[clang] [Clang] Implement C++26 P2748R5 "Disallow Binding a Returned Glvalue to a Temporary" (PR #89942)

2024-04-25 Thread A. Jiang via cfe-commits
@@ -8340,8 +8340,17 @@ void Sema::checkInitializerLifetime(const InitializedEntity , << Entity.getType()->isReferenceType() << CLE->getInitializer() << 2 << DiagRange; } else { -Diag(DiagLoc, diag::warn_ret_local_temp_addr_ref) -

[clang] [Clang] Implement C++26 P2748R5 "Disallow Binding a Returned Glvalue to a Temporary" (PR #89942)

2024-04-25 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/89942 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Implement C++26 P2748R5 "Disallow Binding a Returned Glvalue to a Temporary" (PR #89942)

2024-04-25 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/89942 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Implement C++26 P2748R5 "Disallow Binding a Returned Glvalue to a Temporary" (PR #89942)

2024-04-24 Thread A. Jiang via cfe-commits
@@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -std=c++26 -fsyntax-only -verify %s + +auto&& f1() { + return 42; // expected-error{{returning reference to local temporary object}} +} +const double& f2() { + static int x = 42; + return x; // expected-error{{returning reference to local

[clang] [Clang] Implement C++26 P2748R5 "Disallow Binding a Returned Glvalue to a Temporary" (PR #89942)

2024-04-24 Thread A. Jiang via cfe-commits
@@ -8340,8 +8340,17 @@ void Sema::checkInitializerLifetime(const InitializedEntity , << Entity.getType()->isReferenceType() << CLE->getInitializer() << 2 << DiagRange; } else { -Diag(DiagLoc, diag::warn_ret_local_temp_addr_ref) -

[clang] [C++23] [CLANG] Adding C++23 constexpr math functions: fmin and frexp. (PR #88978)

2024-04-23 Thread A. Jiang via cfe-commits
@@ -2922,7 +2922,7 @@ static bool handleFloatFloatBinOp(EvalInfo , const BinaryOperator *E, // If during the evaluation of an expression, the result is not // mathematically defined [...], the behavior is undefined. // FIXME: C++ rules require us to not conform to

[clang] [C99] Claim conformance for _Complex support (PR #88161)

2024-04-09 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: > But fails on Windows. This seems because of that MS UCRT's complex math functions are non-conforming. I _guess_ they could work if we write the following before including UCRT's ``. ```C #define _C_COMPLEX_T typedef double _Complex _C_double_complex; typedef float

[clang] [clang] Add __builtin_start_object_lifetime builtin. (PR #82776)

2024-03-27 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: > This does something both useful and correct with `-fno-strict-aliasing`. I'm not sure whether an instrinsic is even needed with `-fno-strict-aliasing`. IIUC `std::start_lifetime_as` mainly tells the compiler that the types of data in the storage can be changed

[clang] [libcxx] [libc++] Implement LWG3528 (`make_from_tuple` can perform (the equivalent of) a C-style cast) (PR #85263)

2024-03-20 Thread A. Jiang via cfe-commits
@@ -1386,9 +1386,19 @@ inline _LIBCPP_HIDE_FROM_ABI constexpr decltype(auto) apply(_Fn&& __f, _Tuple&& std::forward<_Tuple>(__t), typename __make_tuple_indices>>::type{})) +#if _LIBCPP_STD_VER >= 20 template inline _LIBCPP_HIDE_FROM_ABI constexpr _Tp

[clang] [Clang] Update value for __cpp_implicit_move (#84216) (PR #84228)

2024-03-06 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: [This page](https://clang.llvm.org/cxx_status.html) still refers to [P2266R1](https://wg21.link/p2266r1) but the approved revision is [P2266R3](https://wg21.link/p2266r3). Should we fix the citation in this PR or another? https://github.com/llvm/llvm-project/pull/84228

[clang] [Clang] [Sema] Improve support for `__restrict`-qualified member functions (PR #83855)

2024-03-06 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: Reported 2 bugs for MSVC. (The first also affects standard cv-qualifiers.) - https://developercommunity.visualstudio.com/t/cv-qualifiers-and-__restrict-in-the-temp/10609457 - https://developercommunity.visualstudio.com/t/__restrict-on-non-static-member-function/10609449

[clang] [clang] Add __builtin_start_object_lifetime builtin. (PR #82776)

2024-02-25 Thread A. Jiang via cfe-commits
@@ -896,6 +896,12 @@ def Launder : Builtin { let Prototype = "void*(void*)"; } +def StartObjectLifeTime : Builtin { + let Spellings = ["__builtin_start_object_lifetime"]; frederick-vs-ja wrote: IMO if the intent of this intrinsic is to handle polymorphic

[clang] [clang] Add __builtin_start_object_lifetime builtin. (PR #82776)

2024-02-23 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: > * with `-fstrict-vtable-pointers` flag, we update the vtpr assumption > correctly (mark the load/store vptr with appropriate invariant group > intrinsics) to prevent incorrect vptr load folding; I _guess_ we want a variant of this intrinsic which doesn't affect

[clang] [clang] Implement `__is_layout_compatible` (PR #81506)

2024-02-19 Thread A. Jiang via cfe-commits
@@ -1558,6 +1558,89 @@ void is_standard_layout() int t71[F(__is_standard_layout(HasEmptyIndirectBaseAsSecondUnionMember))]; } +struct CStruct2 { + int one; + int two; +}; + +struct CEmptyStruct2 {}; + +struct CppEmptyStruct2 : CStruct2 {}; +struct CppStructStandard2 :

[clang] [Clang] fix static operator()/[] call not evaluating object (PR #78356)

2024-01-19 Thread A. Jiang via cfe-commits
@@ -598,3 +600,27 @@ namespace B { } void g(B::X x) { A::f(x); } } + +namespace static_operator { +#if __cplusplus >= 201703L frederick-vs-ja wrote: > No way to modify things in a C++11/14 constexpr function (`++x` is not a > constant expression), so no way

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2024-01-19 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: @Endilll Oh, I'm sorry for late replying. I wasn't wating for anybody and think this can be merged. https://github.com/llvm/llvm-project/pull/68846 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Clang] fix static operator()/[] call not evaluating object (PR #78356)

2024-01-16 Thread A. Jiang via cfe-commits
@@ -598,3 +600,27 @@ namespace B { } void g(B::X x) { A::f(x); } } + +namespace static_operator { +#if __cplusplus >= 201703L frederick-vs-ja wrote: Why C++17? https://github.com/llvm/llvm-project/pull/78356 ___

[clang] [Clang] fix static operator()/[] call not evaluating object (PR #78356)

2024-01-16 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/78356 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] fix static operator()/[] call not evaluating object (PR #78356)

2024-01-16 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja commented: It seems that more things are being done #68485. Have you double checked that PR? https://github.com/llvm/llvm-project/pull/78356 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang] [SemaCXX] Implement CWG2627 Bit-fields and narrowing conversions (PR #78112)

2024-01-14 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: > Should this be a SFINAE-able error before C++23? (It isn't currently) I believe this should (in C++11 and later modes). https://github.com/llvm/llvm-project/pull/78112 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[libcxx] [flang] [clang] [compiler-rt] [llvm] [lldb] [clang-tools-extra] [libc] [lld] [libc++][variant] P2637R3: Member `visit` (`std::variant`) (PR #76447)

2024-01-02 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/76447 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libcxx] [flang] [clang] [compiler-rt] [llvm] [lldb] [clang-tools-extra] [libc] [lld] [libc++][variant] P2637R3: Member `visit` (`std::variant`) (PR #76447)

2024-01-02 Thread A. Jiang via cfe-commits
@@ -1273,6 +1293,22 @@ public: __impl_.__swap(__that.__impl_); } +# if _LIBCPP_STD_VER >= 26 + // [variant.visit], visitation + + template frederick-vs-ja wrote: Would it be better to use a special tag type like this ```C++ struct

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-11-26 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/68846 >From 9ef23f11f52735976a05080227bb880af3b9cbb6 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Tue, 17 Oct 2023 10:41:18 +0800 Subject: [PATCH] [Docs][Clang] DR status in cxx_status.html ---

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-11-14 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/68846 >From b2ec5be2a9eb80a4aeaf329ea4aed727b36501a1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Tue, 17 Oct 2023 10:41:18 +0800 Subject: [PATCH] [Docs][Clang] DR status in cxx_status.html ---

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-11-07 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/68846 >From 40dca93d3e1f339f3e756e54687ea5506b3d6f2e Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Tue, 17 Oct 2023 10:41:18 +0800 Subject: [PATCH] [Docs][Clang] DR status in cxx_status.html ---

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-10-25 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/68846 >From 07007c384ee57a20ad1dd1b0422c93152bb7f18e Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Tue, 17 Oct 2023 10:41:18 +0800 Subject: [PATCH] [Docs][Clang] DR status in cxx_status.html ---

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-10-16 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/68846 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-10-16 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: @Endilll Thanks for notification! P2280 was already handled, while P2156 was previously missed. @cor3ntin I've add the DR status to P2156R1 and force-pushed. https://github.com/llvm/llvm-project/pull/68846 ___ cfe-commits

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-10-16 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/68846 >From 00dec85aabcbd2e93fa80aed7b21f7ce02aab589 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Tue, 17 Oct 2023 10:41:18 +0800 Subject: [PATCH] [Docs][Clang] DR status in cxx_status.html ---

[clang] [Docs][Clang] Missing DR status for C++23-era papers in cxx_status.html (PR #68846)

2023-10-11 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja created https://github.com/llvm/llvm-project/pull/68846 I'm unsure whether [P2460R2](https://wg21.link/p2460r2) should be listed in the page. The paper seemingly requires no changes. ### References - [N4891](https://wg21.link/n4891) -

[clang-tools-extra] [libc++] Prevent calling the projection more than three times (PR #66315)

2023-09-24 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: It seems that we should remove this block because it turns out that `ranges::clamp` needs double moves under some circumstances.

r335546 - Add an option to support debug fission on implicit ThinLTO.

2018-06-25 Thread Yunlian Jiang via cfe-commits
Author: yunlian Date: Mon Jun 25 16:05:27 2018 New Revision: 335546 URL: http://llvm.org/viewvc/llvm-project?rev=335546=rev Log: Add an option to support debug fission on implicit ThinLTO. Summary: This adds an option -gsplit-dwarf=. LLVM can create .dwo files in the given directory during the

r305401 - [PPC] Enhance altivec conversion function macros implementation.

2017-06-14 Thread Tony Jiang via cfe-commits
Author: jtony Date: Wed Jun 14 12:23:43 2017 New Revision: 305401 URL: http://llvm.org/viewvc/llvm-project?rev=305401=rev Log: [PPC] Enhance altivec conversion function macros implementation. Add checking for the second parameter of altivec conversion builtin to make sure it is compile-time

r303786 - Fix one test case faiulre in commit 303766.

2017-05-24 Thread Tony Jiang via cfe-commits
Author: jtony Date: Wed May 24 13:12:11 2017 New Revision: 303786 URL: http://llvm.org/viewvc/llvm-project?rev=303786=rev Log: Fix one test case faiulre in commit 303766. It is clean when I build boostrap and run make checkall on my machine, I guess it could be I only build bootstrap with

r291702 - [PowerPC] Fix the wrong implementation of builtin vec_rlnm.

2017-01-11 Thread Tony Jiang via cfe-commits
Author: jtony Date: Wed Jan 11 14:59:42 2017 New Revision: 291702 URL: http://llvm.org/viewvc/llvm-project?rev=291702=rev Log: [PowerPC] Fix the wrong implementation of builtin vec_rlnm. Modified: cfe/trunk/lib/Headers/altivec.h cfe/trunk/test/CodeGen/builtins-ppc-p9vector.c Modified:

[PATCH] D26520: [PowerPC] Implement BE VSX load/store builtins - llvm portion.

2016-11-10 Thread Tony Jiang via cfe-commits
jtony created this revision. jtony added reviewers: nemanjai, sfertile, syzaara, lei, kbarton, amehsan. jtony added subscribers: llvm-commits, cfe-commits, echristo. This patch implements all the overloads for vec_xl_be and vec_xst_be. On BE, they behaves exactly the same with vec_xl and vec_xst,

[PATCH] D26519: [PowerPC] Implement BE VSX load/store builtins - clang portion.

2016-11-10 Thread Tony Jiang via cfe-commits
jtony created this revision. jtony added reviewers: nemanjai, amehsan, kbarton, sfertile, syzaara, lei. jtony added subscribers: cfe-commits, echristo, llvm-commits. This patch implements all the overloads for vec_xl_be and vec_xst_be. On BE, they behaves exactly the same with vec_xl and vec_xst,

r286455 - [PowerPC] Implement plain VSX load/store builtins.

2016-11-10 Thread Tony Jiang via cfe-commits
Author: jtony Date: Thu Nov 10 08:39:56 2016 New Revision: 286455 URL: http://llvm.org/viewvc/llvm-project?rev=286455=rev Log: [PowerPC] Implement plain VSX load/store builtins. Implement all the different 24 overloads for vec_xl and vec_xst. Modified: cfe/trunk/lib/Headers/altivec.h

[PATCH] D26282: [PowerPC] Implement plain VSX load/store builtins.

2016-11-08 Thread Tony Jiang via cfe-commits
jtony updated this revision to Diff 77190. jtony added a comment. Add -U99 option to git diff to show context for this patch. https://reviews.llvm.org/D26282 Files: lib/Headers/altivec.h test/CodeGen/builtins-ppc-altivec.c test/CodeGen/builtins-ppc-quadword.c

r286205 - [PowerPC] Implement remaining vector comparison builtins.

2016-11-08 Thread Tony Jiang via cfe-commits
Author: jtony Date: Mon Nov 7 22:15:45 2016 New Revision: 286205 URL: http://llvm.org/viewvc/llvm-project?rev=286205=rev Log: [PowerPC] Implement remaining vector comparison builtins. vector bool char vec_cmpeq (vector bool char, vector bool char); vector bool int vec_cmpeq (vector bool int,

[PATCH] D26271: [PPC} add extract significand/ extract exponent/test data class for vector float and vector double -- clang portion

2016-11-08 Thread Tony Jiang via cfe-commits
jtony added a comment. A very small nit, the bracket does not match in the title, do you mean [PPC] instead of [PPC}? Repository: rL LLVM https://reviews.llvm.org/D26271 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D26160: [PowerPC] Implement remaining vector comparison builtins

2016-11-07 Thread Tony Jiang via cfe-commits
jtony updated this revision to Diff 77036. jtony added a comment. I migrated the commit from the old anonymous repository to the new jtony repository to prepare for committing upstream (use git svn dcommit). Should not have any difference with the previous patches, update it just in case.

[PATCH] D26282: [PowerPC] Implement plain VSX load/store builtins.

2016-11-07 Thread Tony Jiang via cfe-commits
jtony updated this revision to Diff 77037. jtony added a comment. I also migrated this commit from the old anonymous repository to the new jtony repository to prepare for committing upstream (use git svn dcommit). Should not have any difference with the previous patch, update it just in case.

[PATCH] D26160: [PowerPC] Implement remaining vector comparison builtins

2016-11-03 Thread Tony Jiang via cfe-commits
jtony updated this revision to Diff 76862. jtony marked 2 inline comments as done. jtony added a comment. Fix a few format and layout issues. Format: clang-format is not always correct, sometimes separate parameters in different lines is better. Layout: put the overloaded builtin functions in

[PATCH] D26282: [PowerPC] Implement plain VSX load/store builtins.

2016-11-03 Thread Tony Jiang via cfe-commits
jtony created this revision. jtony added reviewers: nemanjai, amehsan, kbarton, sfertile, syzaara, lei. jtony added subscribers: llvm-commits, cfe-commits, echristo. Implement all the different 24 overloads for vec_xl and vec_xst. Signatures: vector signed char vec_xl (signed long long, signed

[PATCH] D14480

2015-11-10 Thread Yunlian Jiang via cfe-commits
http://reviews.llvm.org/D14480 This tries to improve the compilation time of the test case in https://llvm.org/bugs/show_bug.cgi?id=25416 The problem is that when trying to get the SrcLocInfo for asm, it tries to get the SrcLoc for each line inside the asm string. For each line, it goes through