зеркало из https://github.com/microsoft/clang.git
Avoid to emit redundant implicit cast for enum constants init expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122056 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
28d5b72419
Коммит
bbca85d14c
|
@ -7745,7 +7745,7 @@ void Sema::ActOnEnumBody(SourceLocation EnumLoc, SourceLocation LBraceLoc,
|
|||
ECD->setInitVal(InitVal);
|
||||
|
||||
// Adjust the Expr initializer and type.
|
||||
if (ECD->getInitExpr())
|
||||
if (ECD->getInitExpr() && NewTy != ECD->getInitExpr()->getType())
|
||||
ECD->setInitExpr(ImplicitCastExpr::Create(Context, NewTy,
|
||||
CK_IntegralCast,
|
||||
ECD->getInitExpr(),
|
||||
|
|
|
@ -12,5 +12,4 @@ enum Color {
|
|||
// CHECK: load-decls.c:3:3: EnumConstantDecl=Green:3:3 (Definition) Extent=[3:3 - 3:8]
|
||||
// CHECK: load-decls.c:4:3: EnumConstantDecl=Blue:4:3 (Definition) Extent=[4:3 - 4:7]
|
||||
// CHECK: load-decls.c:6:3: EnumConstantDecl=Rouge:6:3 (Definition) Extent=[6:3 - 6:14]
|
||||
// CHECK: load-decls.c:6:11: UnexposedExpr=Red:2:3 Extent=[6:11 - 6:14]
|
||||
// CHECK: load-decls.c:6:11: DeclRefExpr=Red:2:3 Extent=[6:11 - 6:14]
|
||||
|
|
Загрузка…
Ссылка в новой задаче