forked from OSchip/llvm-project
[clang] Update comments on another libstdc++ HACK
Document relevant gcc versions and dates. Differential Revision: https://reviews.llvm.org/D101530
This commit is contained in:
parent
8989268dae
commit
e90792d8c7
|
@ -856,10 +856,11 @@ Decl *TemplateDeclInstantiator::InstantiateTypedefNameDecl(TypedefNameDecl *D,
|
||||||
SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType());
|
SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
// HACK: g++ has a bug where it gets the value kind of ?: wrong.
|
// HACK: 2012-10-23 g++ has a bug where it gets the value kind of ?: wrong.
|
||||||
// libstdc++ relies upon this bug in its implementation of common_type.
|
// libstdc++ relies upon this bug in its implementation of common_type. If we
|
||||||
// If we happen to be processing that implementation, fake up the g++ ?:
|
// happen to be processing that implementation, fake up the g++ ?:
|
||||||
// semantics. See LWG issue 2141 for more information on the bug.
|
// semantics. See LWG issue 2141 for more information on the bug. The bugs
|
||||||
|
// are fixed in g++ and libstdc++ 4.9.0 (2014-04-22).
|
||||||
const DecltypeType *DT = DI->getType()->getAs<DecltypeType>();
|
const DecltypeType *DT = DI->getType()->getAs<DecltypeType>();
|
||||||
CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(D->getDeclContext());
|
CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(D->getDeclContext());
|
||||||
if (DT && RD && isa<ConditionalOperator>(DT->getUnderlyingExpr()) &&
|
if (DT && RD && isa<ConditionalOperator>(DT->getUnderlyingExpr()) &&
|
||||||
|
|
Loading…
Reference in New Issue