https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/142081
This fixes a regression introduced in
https://github.com/llvm/llvm-project/pull/130537,
which was reported here:
https://github.com/llvm/llvm-project/pull/132401#issuecomment-2839690599
When deducing member p
mizvekov wrote:
@gulfemsavrun thanks for reporting the issue.
This should be fixed soon by https://github.com/llvm/llvm-project/pull/142081
https://github.com/llvm/llvm-project/pull/132401
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https:
@@ -2127,7 +2127,7 @@ static TemplateDeductionResult
DeduceTemplateArgumentsByTypeMatch(
TA = S.Context.getTypeDeclType(MPA->getMostRecentCXXRecordDecl());
} else {
NestedNameSpecifier *QA = MPA->getQualifier();
-TA = QualType(QA->translateToType(
https://github.com/mizvekov approved this pull request.
Thanks, LGTM on the implementation.
I have no objections to the flag itself either.
This is missing a Release note, please add it before merging.
CC @ChuanqiXu9
Please wait at least a couple of days before merging for other comments and
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/143291
The dependency from the type sugar of the underlying type of a Typedef were not
being considered for the dependency of the TypedefType itself.
A TypedefType should be instantiation dependent if it involves non
mizvekov wrote:
> I wasn't sure whether to enable this for UEFI targets as well, so I didn't. I
> enabled it for MinGW targets too, since I saw no reason to treat them
> differently.
AFAIK only recent GCC toolchain supports codeview. I am not sure GDB even does,
so this could be a problem.
h
@@ -0,0 +1,24 @@
+// Verify there is a space after the parens when priting callingconv
attributes.
+// RUN: %clang_cc1 -DDEVICE -triple spirv64 -ast-dump -ast-dump-filter foo %s \
+// RUN: | FileCheck -check-prefix=CHECK-DEVICE --strict-whitespace %s
+
+// RUN: %clang_cc1 -DVECTO
@@ -0,0 +1,24 @@
+// Verify there is a space after the parens when priting callingconv
attributes.
+// RUN: %clang_cc1 -DDEVICE -triple spirv64 -ast-dump -ast-dump-filter foo %s \
+// RUN: | FileCheck -check-prefix=CHECK-DEVICE --strict-whitespace %s
+
+// RUN: %clang_cc1 -DVECTO
@@ -6998,6 +7007,31 @@ namespace {
else
return C.getRValueReferenceType(New);
}
+ case Elaborated: {
+auto *ET = cast(Old);
+return C.getElaboratedType(ET->getKeyword(), ET->getQualifier(),
+ wrap(C,
https://github.com/mizvekov approved this pull request.
https://github.com/llvm/llvm-project/pull/143169
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov commented:
Change looks good, but it would be better to include a regression test.
https://github.com/llvm/llvm-project/pull/143160
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailm
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/143614
___
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.
So what changed since the last commit is that preprocessing-only mode doesn't
imply the semantics of this flag anymore.
I think It's good practice to mention what changed since original landing.
https://github.com/llvm/llvm-project
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/143614
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -320,6 +321,69 @@ bool
clang::analyze_format_string::ParseUTF8InvalidSpecifier(
// Methods on ArgType.
//===--===//
+static bool namedTypeToLengthModifierKind(QualType QT,
+
@@ -220,6 +220,14 @@ static ExprResult EvaluateAtomicConstraint(
if (Inst.isInvalid())
return ExprError();
+if (const TemplateTypeParmType *TTPT =
+
dyn_cast(AtomicExpr->getType().getDesugaredType(S.Context)))
{
+ TemplateTypeParmDecl *TTPD = TTPT->
@@ -0,0 +1,180 @@
+// RUN: %check_clang_tidy %s misc-const-correctness %t -- \
+// RUN: -config="{CheckOptions: {\
+// RUN: misc-const-correctness.AllowedTypes:
'[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$;qualified::Type;::fully::QualifiedType;ConstTemplate',
\
+// RUN: misc
@@ -6781,7 +6781,7 @@ static bool HandleConstructorCall(const Expr *E, const
LValue &This,
// and make sure we've initialized every step along it.
auto IndirectFieldChain = IFD->chain();
for (auto *C : IndirectFieldChain) {
-FD = cast(C);
+FD
@@ -320,6 +321,69 @@ bool
clang::analyze_format_string::ParseUTF8InvalidSpecifier(
// Methods on ArgType.
//===--===//
+static bool namedTypeToLengthModifierKind(QualType QT,
+
@@ -1961,11 +1969,20 @@ class ASTContext : public RefCountedBase {
/// .
///
/// The sizeof operator requires this (C99 6.5.3.4p4).
- CanQualType getSizeType() const;
+ QualType getSizeType() const;
mizvekov wrote:
Can you provide `CanQualType getCanon
@@ -6726,17 +6726,63 @@ QualType ASTContext::getTagDeclType(const TagDecl
*Decl) const {
return getTypeDeclType(const_cast(Decl));
}
+// Inject __size_t, __signed_size_t, and __ptrdiff_t to provide portable hints
+// and diagnostics. In C and C++, expressions of type size_t
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/143653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mizvekov wrote:
No strong objections, but I'd prefer to wait as well.
This was one thing I looked into adding when I initially implemented it, but
all potential uses turned out better without it.
https://github.com/llvm/llvm-project/pull/143516
___
c
@@ -3454,9 +3454,11 @@ void
Sema::DeclareGlobalAllocationFunction(DeclarationName Name,
if (Func->getNumParams() == Params.size()) {
llvm::SmallVector FuncParams;
for (auto *P : Func->parameters())
- FuncParams.push_back(
- Context.g
https://github.com/mizvekov approved this pull request.
https://github.com/llvm/llvm-project/pull/143653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3454,9 +3454,11 @@ void
Sema::DeclareGlobalAllocationFunction(DeclarationName Name,
if (Func->getNumParams() == Params.size()) {
llvm::SmallVector FuncParams;
for (auto *P : Func->parameters())
- FuncParams.push_back(
- Context.g
@@ -3455,9 +3454,12 @@ void
Sema::DeclareGlobalAllocationFunction(DeclarationName Name,
if (Func->getNumParams() == Params.size()) {
llvm::SmallVector FuncParams;
for (auto *P : Func->parameters())
- FuncParams.push_back(
- Context.g
@@ -3455,9 +3454,12 @@ void
Sema::DeclareGlobalAllocationFunction(DeclarationName Name,
if (Func->getNumParams() == Params.size()) {
llvm::SmallVector FuncParams;
for (auto *P : Func->parameters())
- FuncParams.push_back(
- Context.g
@@ -3397,7 +3397,8 @@ void Sema::DeclareGlobalNewDelete() {
GlobalNewDeleteDeclared = true;
QualType VoidPtr = Context.getPointerType(Context.VoidTy);
- QualType SizeT = Context.getSizeType();
+ // FIXME: Why is 'Canonical'SizeType needed here?
+ QualType SizeT = Contex
mizvekov wrote:
I have a work in progress patch which fixes this issue, and doesn't need to
take this approach of storing diagnosed entities.
It's a big patch that doesn't target this issue specifically, but I remember I
encountered this problem while refactoring things, and I removed the dupl
@@ -2767,6 +2767,10 @@ class DependentBitIntTypeLoc final
: public InheritingConcreteTypeLoc {};
+class PredefinedSugarTypeLoc final
+: public InheritingConcreteTypeLoc {};
mizvekov wrote:
One thing is having to define a class, another thing is if that
mizvekov wrote:
> Thanks! I don't know if similar problems (ODR confused by the
> canonicalization merging decltypes with different names of template
> parameters) can show up in other cases, but as the PR fixes this particular
> case LGTM.
Sure, please file bug reports for any other similar
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/146153
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov created
https://github.com/llvm/llvm-project/pull/146153
This fixes an issue with the ODR checker not using the as-written type of
conversion operators.
The odr-checker in general should not have to deal with canonical types, as its
purpose is to compare same defin
mizvekov wrote:
Thanks! This should be fixed by https://github.com/llvm/llvm-project/pull/146153
https://github.com/llvm/llvm-project/pull/144796
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cf
@@ -2258,6 +2258,27 @@ class alignas(TypeAlignment) Type : public
ExtQualsTypeCommonBase {
unsigned NumExpansions;
};
+ enum class PredefinedSugarKind {
+/// The "size_t" type.
+SizeT,
+
+/// The "signed size_t" type.
mizvekov wrote:
Well
@@ -1516,6 +1516,23 @@ void ASTContext::InitBuiltinTypes(const TargetInfo
&Target,
MSGuidTagDecl = buildImplicitRecord("_GUID");
getTranslationUnitDecl()->addDecl(MSGuidTagDecl);
}
+
+ // size_t (C99TC3 6.5.3.4), signed size_t (C++23 5.13.2) and
+ // ptrdiff_t (C99
@@ -1567,6 +1567,8 @@ class ASTContext : public RefCountedBase {
/// and bit count.
QualType getDependentBitIntType(bool Unsigned, Expr *BitsExpr) const;
+ QualType getPredefinedSugarType(uint32_t KD) const;
mizvekov wrote:
It would be more helpful and l
@@ -8038,6 +8060,32 @@ class DependentBitIntType final : public Type, public
llvm::FoldingSetNode {
}
};
+class PredefinedSugarType final : public Type {
+public:
+ friend class ASTContext;
+ using Kind = PredefinedSugarKind;
+
+private:
+ PredefinedSugarType(Kind KD, Qu
@@ -5622,3 +5622,15 @@
HLSLAttributedResourceType::findHandleTypeOnResource(const Type *RT) {
}
return nullptr;
}
+
+StringRef PredefinedSugarType::getName() const {
+ switch (getKind()) {
+ case Kind::SizeT:
+return "__size_t";
+ case Kind::SignedSizeT:
+return
@@ -6796,14 +6836,25 @@ QualType ASTContext::getTagDeclType(const TagDecl
*Decl) const {
/// getSizeType - Return the unique type for "size_t" (C99 7.17), the result
/// of the sizeof operator (C99 6.5.3.4p4). The value is target dependent and
/// needs to agree with the defin
@@ -5216,6 +5237,25 @@ QualType ASTContext::getDependentBitIntType(bool
IsUnsigned,
return QualType(New, 0);
}
+QualType ASTContext::getPredefinedSugarType(uint32_t KD) const {
+ using Kind = PredefinedSugarType::Kind;
+ auto getUnderlyingType = [](const ASTContext &Ctx,
@@ -1480,6 +1480,16 @@ static bool
IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
return false;
break;
}
+ case Type::PredefinedSugar: {
+const auto *TP1 = cast(T1);
+const auto *TP2 = cast(T2);
+if (TP1->getKind() != TP2->getKind())
+
https://github.com/mizvekov commented:
Thanks, this looks good!
It would be awesome to use these in existing cases which we handle with a
builtin typedef, as this would be helpful to validate the design, but this is
not required and doesn't need to be part of this PR.
https://github.com/llvm/
@@ -8038,6 +8060,32 @@ class DependentBitIntType final : public Type, public
llvm::FoldingSetNode {
}
};
+class PredefinedSugarType final : public Type {
+public:
+ friend class ASTContext;
+ using Kind = PredefinedSugarKind;
+
+private:
+ PredefinedSugarType(Kind KD, Qu
@@ -5216,6 +5237,25 @@ QualType ASTContext::getDependentBitIntType(bool
IsUnsigned,
return QualType(New, 0);
}
+QualType ASTContext::getPredefinedSugarType(uint32_t KD) const {
+ using Kind = PredefinedSugarType::Kind;
+ auto getUnderlyingType = [](const ASTContext &Ctx,
@@ -1516,6 +1516,23 @@ void ASTContext::InitBuiltinTypes(const TargetInfo
&Target,
MSGuidTagDecl = buildImplicitRecord("_GUID");
getTranslationUnitDecl()->addDecl(MSGuidTagDecl);
}
+
+ // size_t (C99TC3 6.5.3.4), signed size_t (C++23 5.13.2) and
+ // ptrdiff_t (C99
@@ -2767,6 +2767,10 @@ class DependentBitIntTypeLoc final
: public InheritingConcreteTypeLoc {};
+class PredefinedSugarTypeLoc final
+: public InheritingConcreteTypeLoc {};
mizvekov wrote:
These should ideally never be used in practice, as a Predefined
@@ -2258,6 +2258,27 @@ class alignas(TypeAlignment) Type : public
ExtQualsTypeCommonBase {
unsigned NumExpansions;
};
+ enum class PredefinedSugarKind {
+/// The "size_t" type.
+SizeT,
+
+/// The "signed size_t" type.
mizvekov wrote:
```su
@@ -14526,6 +14564,9 @@ static QualType getCommonSugarTypeNode(ASTContext &Ctx,
const Type *X,
DX->isCountInBytes(), DX->isOrNull(),
CDX);
}
+ case Type::PredefinedSugar:
+// FIXME: Should this
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/143653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -7248,6 +7250,22 @@ QualType
TreeTransform::TransformDependentBitIntType(
return Result;
}
+template
+QualType TreeTransform::TransformPredefinedSugarType(
+TypeLocBuilder &TLB, PredefinedSugarTypeLoc TL) {
+ const PredefinedSugarType *EIT = TL.getTypePtr();
+ Qua
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/143653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1567,6 +1567,8 @@ class ASTContext : public RefCountedBase {
/// and bit count.
QualType getDependentBitIntType(bool Unsigned, Expr *BitsExpr) const;
+ QualType getPredefinedSugarType(uint32_t KD) const;
mizvekov wrote:
You can use enums in TypePrope
@@ -6796,14 +6836,25 @@ QualType ASTContext::getTagDeclType(const TagDecl
*Decl) const {
/// getSizeType - Return the unique type for "size_t" (C99 7.17), the result
/// of the sizeof operator (C99 6.5.3.4p4). The value is target dependent and
/// needs to agree with the defin
@@ -2767,6 +2767,10 @@ class DependentBitIntTypeLoc final
: public InheritingConcreteTypeLoc {};
+class PredefinedSugarTypeLoc final
+: public InheritingConcreteTypeLoc {};
mizvekov wrote:
Yeah, but for the current uses of PredefinedSugarType in this p
@@ -7248,6 +7250,22 @@ QualType
TreeTransform::TransformDependentBitIntType(
return Result;
}
+template
+QualType TreeTransform::TransformPredefinedSugarType(
+TypeLocBuilder &TLB, PredefinedSugarTypeLoc TL) {
+ const PredefinedSugarType *EIT = TL.getTypePtr();
+ Qua
@@ -5216,6 +5230,38 @@ QualType ASTContext::getDependentBitIntType(bool
IsUnsigned,
return QualType(New, 0);
}
+QualType
+ASTContext::getPredefinedSugarType(PredefinedSugarType::Kind KD) const {
+ llvm::FoldingSetNodeID ID;
+ PredefinedSugarType::Profile(ID, llvm::to_unde
https://github.com/mizvekov approved this pull request.
I think this looks good, sans a single nit, thanks!
https://github.com/llvm/llvm-project/pull/143653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/
@@ -2258,6 +2258,30 @@ class alignas(TypeAlignment) Type : public
ExtQualsTypeCommonBase {
unsigned NumExpansions;
};
+ enum class PredefinedSugarKind {
+/// The "size_t" type.
+SizeT,
+
+/// The signed integer type corresponding to "size_t".
+SignedSiz
@@ -3397,7 +3397,8 @@ void Sema::DeclareGlobalNewDelete() {
GlobalNewDeleteDeclared = true;
QualType VoidPtr = Context.getPointerType(Context.VoidTy);
- QualType SizeT = Context.getSizeType();
+ // FIXME: Why is 'Canonical'SizeType needed here?
+ QualType SizeT = Contex
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/143653
___
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/143653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/mizvekov commented:
I think marking declarations as invalid even in non-immediate context errors
should not be an issue, as the declaration should not end up being used anyway.
I think this is a pretty common pattern in other places. Why do we end up
crashing only with this
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/147275
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -4111,7 +4111,10 @@ static ActionResult
getPatternForClassTemplateSpecialization(
if (Ambiguous) {
// Partial ordering did not produce a clear winner. Complain.
Inst.Clear();
- ClassTemplateSpec->setInvalidDecl();
+
+ if (!S.isS
@@ -4111,7 +4111,10 @@ static ActionResult
getPatternForClassTemplateSpecialization(
if (Ambiguous) {
// Partial ordering did not produce a clear winner. Complain.
Inst.Clear();
- ClassTemplateSpec->setInvalidDecl();
+
+ if (!S.isS
@@ -7248,6 +7248,12 @@ QualType
TreeTransform::TransformDependentBitIntType(
return Result;
}
+template
+QualType TreeTransform::TransformPredefinedSugarType(
+TypeLocBuilder &TLB, PredefinedSugarTypeLoc TL) {
+ llvm_unreachable("This type does not need to be transfor
@@ -2258,6 +2258,30 @@ class alignas(TypeAlignment) Type : public
ExtQualsTypeCommonBase {
unsigned NumExpansions;
};
+ enum class PredefinedSugarKind {
+/// The "size_t" type.
+SizeT,
+
+/// The signed integer type corresponding to "size_t".
+SignedSiz
@@ -1061,15 +1061,36 @@ BuildDeductionGuideForTypeAlias(Sema &SemaRef,
SmallVector DeduceResults(
F->getTemplateParameters()->size());
+ // We don't have to deduce against the alias template specialization,
+ // if the source template is a synthesized alias deduction
@@ -4433,8 +4433,12 @@ Sema::InstantiateClassMembers(SourceLocation
PointOfInstantiation,
// No need to instantiate in-class initializers during explicit
// instantiation.
if (Field->hasInClassInitializer() && TSK == TSK_ImplicitInstantiation) {
+// H
@@ -4433,8 +4433,12 @@ Sema::InstantiateClassMembers(SourceLocation
PointOfInstantiation,
// No need to instantiate in-class initializers during explicit
// instantiation.
if (Field->hasInClassInitializer() && TSK == TSK_ImplicitInstantiation) {
+// H
@@ -1088,6 +1088,9 @@ void CXXNameMangler::mangleNameWithAbiTags(GlobalDecl GD,
return;
}
+ while (DC->isRequiresExprBody())
+DC = DC->getParent();
mizvekov wrote:
With a compound expression you can introduce lots of other kinds of
DeclContexts he
mizvekov wrote:
> Is there ANYTHING we can do to split this up? This is so huge that github is
> refusing to load half the changes.
I broke the commit down into others, now the first commit only has the AST and
TreeTransform changes.
https://github.com/llvm/llvm-project/pull/147835
__
https://github.com/mizvekov edited
https://github.com/llvm/llvm-project/pull/147835
___
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/147835
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mizvekov wrote:
> I'm definitely OK with accepting all of that, and would very much appreciate
> it.
Done.
https://github.com/llvm/llvm-project/pull/147835
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman
@@ -0,0 +1,585 @@
+//===- NestedNameSpecifier.h - C++ nested name specifiers ---*- 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: Ap
mizvekov wrote:
> For obvious reasons, I wasn't able to make even a reasonably thorough review
> here, but I came across a few things that seemed like good ideas. All 4 of
> the patches are STILL huge.
>
> IMO, unless this can be more bite-sized changes, I don't know how to proceed
> here.
Y
mizvekov wrote:
> You should at minimum be able to layer the `NestedNameSpecifier` change on
> top of the `TagType` change. I can't see why that wouldn't work.
>
> 1. Add the structure for sugary `TagType`s.
> 2. Replace `ElaboratedType` with sugary `TagType`s.
> 3. Change the representation of
@@ -0,0 +1,585 @@
+//===- NestedNameSpecifier.h - C++ nested name specifiers ---*- 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: Ap
https://github.com/mizvekov approved this pull request.
LGTM
For reference, this takes this change out of
https://github.com/llvm/llvm-project/pull/147835, which reduces the size of
that PR a little bit.
https://github.com/llvm/llvm-project/pull/148195
mizvekov wrote:
> These files test demangling `RecordDecl::isInjectedClassName`, which will be
> out-of-date (I think) after merging this PR.
This file uses these symbols as test cases, but they are just examples and
aren't coupled to the clang implementation at all, the tests are still valid,
@@ -2068,7 +2080,9 @@ class ASTContext : public RefCountedBase {
/// if it hasn't yet been built.
QualType getRawCFConstantStringType() const {
if (CFConstantStringTypeDecl)
- return getTypedefType(CFConstantStringTypeDecl);
+ return getTypedefType(ElaboratedT
@@ -0,0 +1,585 @@
+//===- NestedNameSpecifier.h - C++ nested name specifiers ---*- 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: Ap
@@ -6,534 +6,266 @@
//
//===--===//
//
-// This file defines the NestedNameSpecifier class, which represents
-// a C++ nested-name-specifier.
+// This file completes the definition of the NestedNameSpecifie
@@ -0,0 +1,585 @@
+//===- NestedNameSpecifier.h - C++ nested name specifiers ---*- 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: Ap
@@ -1061,15 +1061,36 @@ BuildDeductionGuideForTypeAlias(Sema &SemaRef,
SmallVector DeduceResults(
F->getTemplateParameters()->size());
+ // We don't have to deduce against the alias template specialization,
+ // if the source template is a synthesized alias deduction
https://github.com/mizvekov approved this pull request.
LGTM, but it would be good leaving a FIXME.
https://github.com/llvm/llvm-project/pull/147675
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo
https://github.com/mizvekov closed
https://github.com/llvm/llvm-project/pull/143653
___
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/149613
___
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.
Thanks.
It would be awesome to get the more strict check ironed out in another patch,
and you can probably put it into a different warning group, not part of Wall.
I am sure we can also come up with something to solve the common sugar pro
1601 - 1692 of 1692 matches
Mail list logo