@@ -4008,6 +3996,38 @@ TemplateDeductionResult
Sema::FinishTemplateArgumentDeduction(
Owner = FunctionTemplate->getLexicalDeclContext();
FunctionDecl *FD = FunctionTemplate->getTemplatedDecl();
+ // C++20 [temp.deduct.general]p5: (CWG2369)
+ // If the function templat
https://github.com/mizvekov approved this pull request.
LGTM, but give some time for @sdkrystian to take a look, since he is actively
working on this area.
https://github.com/llvm/llvm-project/pull/114978
___
cfe-commits mailing list
cfe-commits@lists
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/109065
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mizvekov wrote:
Regarding test case 2, that further reduces to:
```C++
template class Q {};
template void F(Q);
template void F(Q) = delete;
void test() {
F(Q());
}
```
The problem is that we consider the parenthesized expression significant in
terms of forming a distinct type.
You can s
mizvekov wrote:
> Wow, I would never have thought it was a problem. Making these the same type
> removes the compilation error. Can you explain why this is a problem from the
> C++ standard PoV?
That's https://eel.is/c++draft/temp.deduct.type#20
In deduced contexts for an NTTP, the type of th
mizvekov wrote:
It's one thing that we might tweak the rules to account for redundant
parenthesis.
But the more complete example shows there is no way to order these unrelated
things.
Note that we hadn't so far implemented these rules for partial ordering of
function templates, but the same i
@@ -7326,11 +7326,13 @@ void
ItaniumMangleContextImpl::mangleCXXCtorVTable(const CXXRecordDecl *RD,
raw_ostream &Out) {
// ::= TC _
CXXNameMangler Mangler(*this, Out);
+ QualType RDType = getASTContext().getRecordType
https://github.com/mizvekov updated
https://github.com/llvm/llvm-project/pull/109882
>From b1a659af4fccba0f7511ab52f0932d5a32958eb7 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Tue, 24 Sep 2024 20:02:05 -0300
Subject: [PATCH 1/2] [clang] fix assert in ADL finding entity in the implicit
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/109882
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -115,7 +115,7 @@ C++ Language Changes
- Allow single element access of GCC vector/ext_vector_type object to be
constant expression. Supports the `V.xyzw` syntax and other tidbits
as seen in OpenCL. Selecting multiple elements is left as a future work.
-- Implement `CWG18
@@ -9509,6 +9509,19 @@ Sema::ActOnStartRequiresExpr(SourceLocation
RequiresKWLoc,
PushDeclContext(BodyScope, Body);
for (ParmVarDecl *Param : LocalParameters) {
+if (Param->getType()->isVoidType()) {
+ if (LocalParameters.size() > 1) {
+Diag(Param->getBeg
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/109882
This adds to the assert the implicit global module case as in module purview.
Fixes #109879
>From b1a659af4fccba0f7511ab52f0932d5a32958eb7 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Tue, 24 Sep 2024
mizvekov wrote:
Yep, I agree that the reduction indicates the original code was IFNDR.
We need a new reduction with no rename in order to locate this on QT code base
and know for sure.
https://github.com/llvm/llvm-project/pull/106585
___
cfe-commits
https://github.com/mizvekov approved this pull request.
LGTM, Thanks!
Can you also add a release note, mentioning the potential ABI breaking change?
Please wait 24h before merging in case the other reviewers want to chime in.
https://github.com/llvm/llvm-project/pull/109970
___
mizvekov wrote:
Same then, go ahead, but please make sure the error handling strategies don't
diverge unnecessarily.
https://github.com/llvm/llvm-project/pull/109831
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bi
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/110387
This fixes handling of friend function templates instances when their template
context changes, such as when a new friend declaration is introduced after an
instance was already created from a previous declara
@@ -944,12 +950,72 @@ getRHSTemplateDeclAndArgs(Sema &SemaRef,
TypeAliasTemplateDecl *AliasTemplate) {
return {Template, AliasRhsTemplateArgs};
}
+struct InheritedConstructorDeductionInfo {
+ // Class template for which we are declaring deduction guides
+ // This is `C` i
@@ -11723,6 +11764,40 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl
*Found, Decl *Templated,
return;
}
+// Errors in deduction guides from inherited constructors
+// will present as substitution failures in the mapping
+// partial specialization
@@ -2211,17 +2211,20 @@ CXXDeductionGuideDecl *CXXDeductionGuideDecl::Create(
ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
ExplicitSpecifier ES, const DeclarationNameInfo &NameInfo, QualType T,
TypeSourceInfo *TInfo, SourceLocation EndLocation, CXXConstr
@@ -10581,6 +10581,47 @@ bool clang::isBetterOverloadCandidate(
auto *Guide1 = dyn_cast_or_null(Cand1.Function);
auto *Guide2 = dyn_cast_or_null(Cand2.Function);
if (Guide1 && Guide2) {
+ // -- F1 and F2 are generated from class template argument deduction
+
@@ -1186,17 +1281,34 @@ void DeclareImplicitDeductionGuidesForTypeAlias(
NewParam->setScopeInfo(0, I);
FPTL.setParam(I, NewParam);
}
- auto *Transformed = cast(buildDeductionGuide(
- SemaRef, AliasTemplate, /*TemplateParams=*/nullptr,
+
+
@@ -11723,6 +11764,40 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl
*Found, Decl *Templated,
return;
}
+// Errors in deduction guides from inherited constructors
+// will present as substitution failures in the mapping
+// partial specialization
@@ -2007,6 +2022,21 @@ class CXXDeductionGuideDecl : public FunctionDecl {
/// this is an implicit deduction guide.
CXXConstructorDecl *getCorrespondingConstructor() const { return Ctor; }
+ /// Get the deduction guide from which this deduction guide was generated,
+ ///
mizvekov wrote:
> I'm wondering what level of granularity we should aim for when reusing the
> current implementation in `GetTypeForDeclarator`?
You can perhaps extract just the parts that are common between both use cases
into a separate function, or another possible approach would be to reus
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/110393
This improves the existing workaround for a core issue introduced in CWG1770.
When performing template argument deduction for an NNTP which the parameter
side is a reference, instead of dropping the references
mizvekov wrote:
ping
https://github.com/llvm/llvm-project/pull/96023
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov updated
https://github.com/llvm/llvm-project/pull/110387
>From ee9ef305403cbcdf004e9777feab44689bf579a4 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Sat, 28 Sep 2024 14:28:58 -0300
Subject: [PATCH] [clang] Redeclare function templates instances per primary
t
https://github.com/mizvekov updated
https://github.com/llvm/llvm-project/pull/110393
>From a06cdbc7a2d010a3f3081b7eb53326aeb7a702b1 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Sat, 28 Sep 2024 21:40:54 -0300
Subject: [PATCH] [clang] Improve deduction of reference typed NTTP
This impro
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/109970
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/110393
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3949,28 +3949,15 @@ TemplateDeductionResult
Sema::FinishTemplateArgumentDeduction(
TemplateArgumentList::CreateCopy(Context, CanonicalBuilder);
Info.reset(SugaredDeducedArgumentList, CanonicalDeducedArgumentList);
+ FunctionTemplate = FunctionTemplate->getMostRec
https://github.com/mizvekov updated
https://github.com/llvm/llvm-project/pull/96023
>From b29e3d3285a414df74a75404c6fe4a39f4a0725d Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Mon, 17 Jun 2024 21:39:08 -0300
Subject: [PATCH 1/2] [clang] Finish implementation of P0522
This finishes the
@@ -153,6 +153,10 @@ RequiresExpr::RequiresExpr(ASTContext &C, SourceLocation
RequiresKWLoc,
std::copy(Requirements.begin(), Requirements.end(),
getTrailingObjects());
RequiresExprBits.IsSatisfied |= Dependent;
+ RequiresExprBits.IsSatisfied &=
+ llvm::no
@@ -9509,6 +9509,19 @@ Sema::ActOnStartRequiresExpr(SourceLocation
RequiresKWLoc,
PushDeclContext(BodyScope, Body);
for (ParmVarDecl *Param : LocalParameters) {
+if (Param->getType()->isVoidType()) {
+ if (LocalParameters.size() > 1) {
+Diag(Param->getBeg
@@ -2146,9 +2147,15 @@ Decl *TemplateDeclInstantiator::VisitFunctionDecl(
FunctionDecl *SpecFunc
= FunctionTemplate->findSpecialization(Innermost, InsertPos);
-// If we already have a function template specialization, return it.
-if (SpecFunc)
- return S
@@ -3158,6 +3161,33 @@ checkBuiltinTemplateIdType(Sema &SemaRef,
BuiltinTemplateDecl *BTD,
int64_t N = Index.getExtValue();
return Ts.getPackAsArray()[N].getAsType();
}
+ case BTK__type_pack_dedup: {
+assert(Converted.size() == 2 && "__builtin_type_pack_dedup sh
@@ -309,7 +309,10 @@ enum BuiltinTemplateKind : int {
BTK__make_integer_seq,
/// This names the __type_pack_element BuiltinTemplateDecl.
- BTK__type_pack_element
+ BTK__type_pack_element,
+
+ /// This names the __type_list_dedup BuiltinTemplateDecl.
+ BTK__type_list_de
mizvekov wrote:
@alexfh Your third test case reduces to:
```C++
template struct InlinedVector {};
template
void PackArgsHelper(InlinedVector, unsigned char);
template
void PackArgsHelper(InlinedVector packed_args, T0,
TRest... args_rest) {
PackArgsHelper(packed_args, a
@@ -1306,3 +1306,18 @@ constexpr int field(int a) {
static_assert(field(3), ""); // expected-error {{constant expression}} \
// expected-note {{in call to 'field(3)'}}
}
+
+namespace literal_comparison {
+
+constexpr bool different_in_loop(bool b =
@@ -7326,11 +7326,13 @@ void
ItaniumMangleContextImpl::mangleCXXCtorVTable(const CXXRecordDecl *RD,
raw_ostream &Out) {
// ::= TC _
CXXNameMangler Mangler(*this, Out);
+ QualType RDType = getASTContext().getRecordType
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/110393
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/96023
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/107350
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov updated
https://github.com/llvm/llvm-project/pull/110393
>From a06cdbc7a2d010a3f3081b7eb53326aeb7a702b1 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Sat, 28 Sep 2024 21:40:54 -0300
Subject: [PATCH] [clang] Improve deduction of reference typed NTTP
This impro
https://github.com/mizvekov updated
https://github.com/llvm/llvm-project/pull/110963
>From e98e024104501f61e589deaeee13553d67e2a64e Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Thu, 3 Oct 2024 01:14:52 -0300
Subject: [PATCH] [clang] Handle template argument conversions for non-pack
par
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/110963
This fixes a regression introduced in #96023, reported in
https://github.com/llvm/llvm-project/issues/110231#issuecomment-2389131854
>From b37fd6faea430d77ff97568259a3792a3534b481 Mon Sep 17 00:00:00 2001
From
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/110963
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -309,7 +309,10 @@ enum BuiltinTemplateKind : int {
BTK__make_integer_seq,
/// This names the __type_pack_element BuiltinTemplateDecl.
- BTK__type_pack_element
+ BTK__type_pack_element,
+
+ /// This names the __type_list_dedup BuiltinTemplateDecl.
+ BTK__type_list_de
https://github.com/mizvekov requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/106730
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3158,6 +3161,33 @@ checkBuiltinTemplateIdType(Sema &SemaRef,
BuiltinTemplateDecl *BTD,
int64_t N = Index.getExtValue();
return Ts.getPackAsArray()[N].getAsType();
}
+ case BTK__type_pack_dedup: {
+assert(Converted.size() == 2 && "__builtin_type_pack_dedup sh
@@ -185,3 +185,21 @@ template struct S {
friend void X::f(T::type);
};
}
+
+namespace GH113324 {
+template struct ct {
+ friend void f1(ct, int = 0); // expected-error {{friend
declaration specifying a default argument must be a definition}}
+ friend void f2
@@ -4694,6 +4694,15 @@ bool Sema::InstantiateDefaultArgument(SourceLocation
CallLoc, FunctionDecl *FD,
ParmVarDecl *Param) {
assert(Param->hasUninstantiatedDefaultArg());
+ // C++ [dcl.fct.default]p4
+ // If a friend declaration D s
@@ -4694,6 +4694,15 @@ bool Sema::InstantiateDefaultArgument(SourceLocation
CallLoc, FunctionDecl *FD,
ParmVarDecl *Param) {
assert(Param->hasUninstantiatedDefaultArg());
+ // C++ [dcl.fct.default]p4
+ // If a friend declaration D s
@@ -185,3 +185,27 @@ template struct S {
friend void X::f(T::type);
};
}
+
+namespace GH113324 {
+template struct ct {
+ friend void f1(ct, int = 0); // expected-error {{friend
declaration specifying a default argument must be a definition}}
+ friend void f2
@@ -265,8 +268,8 @@ bool CXXBasePaths::lookupInBases(ASTContext &Context,
BaseRecord = nullptr;
}
} else {
-BaseRecord = cast(
-BaseSpec.getType()->castAs()->getDecl());
+if (auto *RT = BaseSpec.getType()->getAs())
+
@@ -169,14 +169,18 @@ bool CXXBasePaths::lookupInBases(ASTContext &Context,
// Find the record of the base class subobjects for this type.
QualType BaseType =
Context.getCanonicalType(BaseSpec.getType()).getUnqualifiedType();
+bool isCurrentInstantiation = f
@@ -1736,23 +1736,13 @@ namespace {
SourceLocation RParenLoc,
std::optional Length,
ArrayRef PartialArgs) {
- if (SemaRef.CodeSynthesisContexts.back().Kind !=
-
@@ -1881,6 +1871,15 @@ Decl *TemplateInstantiator::TransformDecl(SourceLocation
Loc, Decl *D) {
TemplateArgument Arg = TemplateArgs(TTP->getDepth(), TTP->getPosition());
if (TTP->isParameterPack()) {
+// We might not have an index for pack expansion when n
https://github.com/mizvekov approved this pull request.
LGTM, Thanks!
https://github.com/llvm/llvm-project/pull/115120
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/113777
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1731,31 +1731,21 @@ namespace {
return inherited::TransformLambdaBody(E, Body);
}
-ExprResult RebuildSizeOfPackExpr(SourceLocation OperatorLoc,
- NamedDecl *Pack, SourceLocation PackLoc,
-
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/115120
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3149,9 +3156,15 @@ struct ExpandPackedTypeConstraints
assert(SemaRef.ArgumentPackSubstitutionIndex != -1);
+TemplateArgument Arg = TemplateArgs(T->getDepth(), T->getIndex());
+
+std::optional PackIndex;
+if (Arg.getKind() == TemplateArgument::Pack)
+
mizvekov wrote:
@zyn0217 meant the PR description, which is the body of the commit, not the
title.
I already fixed it for you.
https://github.com/llvm/llvm-project/pull/113777
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/113777
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2085,7 +2085,9 @@ class ClassTemplateSpecializationDecl : public
CXXRecordDecl,
class ClassTemplatePartialSpecializationDecl
: public ClassTemplateSpecializationDecl {
/// The list of template parameters
- TemplateParameterList* TemplateParams = nullptr;
+ TemplatePa
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/112381
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -931,12 +935,73 @@ getRHSTemplateDeclAndArgs(Sema &SemaRef,
TypeAliasTemplateDecl *AliasTemplate) {
return {Template, AliasRhsTemplateArgs};
}
+struct InheritedConstructorDeductionInfo {
+ // Class template for which we are declaring deduction guides
+ // This is `C` i
@@ -931,12 +935,73 @@ getRHSTemplateDeclAndArgs(Sema &SemaRef,
TypeAliasTemplateDecl *AliasTemplate) {
return {Template, AliasRhsTemplateArgs};
}
+struct InheritedConstructorDeductionInfo {
+ // Class template for which we are declaring deduction guides
+ // This is `C` i
@@ -1173,25 +1276,52 @@ void DeclareImplicitDeductionGuidesForTypeAlias(
NewParam->setScopeInfo(0, I);
FPTL.setParam(I, NewParam);
}
- auto *Transformed = cast(buildDeductionGuide(
- SemaRef, AliasTemplate, /*TemplateParams=*/nullptr,
+
+
@@ -6018,6 +6018,13 @@ bool Sema::GatherArgumentsForCall(SourceLocation
CallLoc, FunctionDecl *FDecl,
} else {
assert(Param && "can't use default arguments without a known callee");
+ // C++ [dcl.fct.default]p4
+ // If a friend declaration D specifies a
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/113777
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov approved this pull request.
LGTM except for a couple of nits.
Thanks!
https://github.com/llvm/llvm-project/pull/113777
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/
@@ -185,3 +185,21 @@ template struct S {
friend void X::f(T::type);
};
}
+
+namespace GH113324 {
+template struct ct {
+ friend void f1(ct, int = 0); // expected-error {{friend
declaration specifying a default argument must be a definition}}
+ friend void f2
@@ -185,3 +185,27 @@ template struct S {
friend void X::f(T::type);
};
}
+
+namespace GH113324 {
+template struct ct {
+ friend void f1(ct, int = 0); // expected-error {{friend
declaration specifying a default argument must be a definition}}
+ friend void f2
@@ -185,3 +185,27 @@ template struct S {
friend void X::f(T::type);
};
}
+
+namespace GH113324 {
+template struct ct {
+ friend void f1(ct, int = 0); // expected-error {{friend
declaration specifying a default argument must be a definition}}
+ friend void f2
mizvekov wrote:
Reverted. The issue looks like the instantiation of the default argument was
skipped, but without any previous error actually being produced, so it
proceeded to CodeGen with invalid AST.
https://github.com/llvm/llvm-project/pull/113777
__
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/115404
Reverts llvm/llvm-project#113777
Reverted due to regression reported here:
https://github.com/llvm/llvm-project/pull/113777#issuecomment-2463465741
>From c702e6179cdde1460f33a300b78708f232f146e3 Mon Sep 17 00
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/115404
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mizvekov wrote:
I think this is too risky to become the default.
We could map out what are the most user affecting compat issues here, and start
from there, without opening the floodgates all at once.
https://github.com/llvm/llvm-project/pull/117840
https://github.com/mizvekov approved this pull request.
Yeah, this LGTM, thanks again.
https://github.com/llvm/llvm-project/pull/115487
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mizvekov wrote:
Please wait for a week before pinging someone again.
I think this is fine to merge as is, if you want to go ahead. We can always do
post commit review later.
https://github.com/llvm/llvm-project/pull/114978
___
cfe-commits mailing lis
mizvekov wrote:
> Now I think these should cover all remaining issues we see after this commit
> (and up to the current ToT):
>
>
>
> * Test case 1: https://gcc.godbolt.org/z/zMG5nsda3
>
> * Test case 2: https://gcc.godbolt.org/z/YbTKzao7d
>
> * Test case 3: https://gcc.godbolt.org/z/89Yn3d
mizvekov wrote:
AFAIK the bazel build scripts are externally automatically updated based on the
cmake scripts, so I don't think we should be touching them.
https://github.com/llvm/llvm-project/pull/108988
___
cfe-commits mailing list
cfe-commits@lists
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/109065
When checking deduction consistency, a substitution can be incomplete such that
only sugar parts refer to non-deduced template parameters.
This would not otherwise lead to an inconsistent deduction, so this pa
mizvekov wrote:
@alexfh https://github.com/llvm/llvm-project/pull/109065 Fixes test case 1.
https://github.com/llvm/llvm-project/pull/100692
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
https://github.com/mizvekov commented:
Thanks for working on this problem!
I think the current approach is limited in ABI stability, we could broaden the
usability here by designing this builtin so it produces a type list which is
unique per set of types (order independent).
I had a chat with
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/106730
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -5347,15 +5347,18 @@ static TypeSourceInfo
*GetFullTypeForDeclarator(TypeProcessingState &state,
case NestedNameSpecifier::TypeSpec:
case NestedNameSpecifier::TypeSpecWithTemplate:
- ClsType = QualType(NNS->getAsType(), 0);
- // Note: if t
@@ -5347,13 +5347,16 @@ static TypeSourceInfo
*GetFullTypeForDeclarator(TypeProcessingState &state,
case NestedNameSpecifier::TypeSpec:
case NestedNameSpecifier::TypeSpecWithTemplate:
- ClsType = QualType(NNS->getAsType(), 0);
+ const Type *N
@@ -5347,13 +5347,16 @@ static TypeSourceInfo
*GetFullTypeForDeclarator(TypeProcessingState &state,
case NestedNameSpecifier::TypeSpec:
case NestedNameSpecifier::TypeSpecWithTemplate:
- ClsType = QualType(NNS->getAsType(), 0);
+ const Type *N
mizvekov wrote:
Can you please describe the reason the patch was reverted?
It's better to put this information in the commit message.
https://github.com/llvm/llvm-project/pull/116477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://list
@@ -5347,15 +5347,18 @@ static TypeSourceInfo
*GetFullTypeForDeclarator(TypeProcessingState &state,
case NestedNameSpecifier::TypeSpec:
case NestedNameSpecifier::TypeSpecWithTemplate:
- ClsType = QualType(NNS->getAsType(), 0);
- // Note: if t
@@ -5347,13 +5347,16 @@ static TypeSourceInfo
*GetFullTypeForDeclarator(TypeProcessingState &state,
case NestedNameSpecifier::TypeSpec:
case NestedNameSpecifier::TypeSpecWithTemplate:
- ClsType = QualType(NNS->getAsType(), 0);
+ const Type *N
https://github.com/mizvekov commented:
I think this is a strict improvement over the general 'fstrict-aliasing' mode
we already have, and I see little value in maintaining separate levels of
strict aliasing conformance long term.
I think it would not be a good situation for users to rely on so
Alejandro =?utf-8?q?Álvarez_Ayllón?=,
Alejandro =?utf-8?q?Álvarez_Ayllón?Message-ID:
In-Reply-To:
@@ -1228,35 +1228,45 @@ bool Sema::AttachTypeConstraint(AutoTypeLoc TL,
NonTypeTemplateParmDecl *NewConstrainedParm,
@@ -886,6 +886,7 @@ Bug Fixes to C++ Support
out of a module (which is the case e.g. in MSVC's implementation of ``std``
module). (#GH118218)
- Fixed a pack expansion issue in checking unexpanded parameter sizes.
(#GH17042)
- Fixed a bug where captured structured bindings w
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/121056
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov commented:
We also usually attach the issue number to the test case somehow, either put
the new test cases under a namespace named `GH120857`, or rename the new test
file to that same name.
https://github.com/llvm/llvm-project/pull/121056
___
mizvekov wrote:
Can you reduce your modules test case into a self contained project with build
system?
If so, you can use [cvise](https://github.com/marxin/cvise) for reducing a
whole project directory recursively in one invocation.
https://github.com/llvm/llvm-project/pull/121245
___
901 - 1000 of 1389 matches
Mail list logo