зеркало из https://github.com/microsoft/clang-1.git
Tweak r183791 so we don't print a note without a source location.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183803 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
8229d22e64
Коммит
81359b0a88
|
@ -2102,7 +2102,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity,
|
|||
for (unsigned i = 0, e = StrLen; i != e; ++i) {
|
||||
llvm::APInt CodeUnit(PromotedCharTyWidth, SL->getCodeUnit(i));
|
||||
Expr *Init = new (Context) IntegerLiteral(
|
||||
Context, CodeUnit, PromotedCharTy, SourceLocation());
|
||||
Context, CodeUnit, PromotedCharTy, SubExpr->getExprLoc());
|
||||
if (CharTy != PromotedCharTy)
|
||||
Init = ImplicitCastExpr::Create(Context, CharTy, CK_IntegralCast,
|
||||
Init, 0, VK_RValue);
|
||||
|
@ -2124,7 +2124,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity,
|
|||
for (unsigned i = 0, e = StrLen; i != e; ++i) {
|
||||
llvm::APInt CodeUnit(PromotedCharTyWidth, Str[i]);
|
||||
Expr *Init = new (Context) IntegerLiteral(
|
||||
Context, CodeUnit, PromotedCharTy, SourceLocation());
|
||||
Context, CodeUnit, PromotedCharTy, SubExpr->getExprLoc());
|
||||
if (CharTy != PromotedCharTy)
|
||||
Init = ImplicitCastExpr::Create(Context, CharTy, CK_IntegralCast,
|
||||
Init, 0, VK_RValue);
|
||||
|
|
|
@ -277,3 +277,19 @@ struct ds ds2 = { { {
|
|||
.a = 0,
|
||||
.b = 1 // expected-error{{field designator 'b' does not refer to any field}}
|
||||
} } };
|
||||
|
||||
// Check initializer override warnings overriding a character in a string
|
||||
struct overwrite_string_struct {
|
||||
char L[6];
|
||||
int M;
|
||||
} overwrite_string[] = {
|
||||
{ { "foo" }, 1 }, // expected-note {{previous initialization is here}}
|
||||
[0].L[2] = 'x' // expected-warning{{initializer overrides prior initialization of this subobject}}
|
||||
};
|
||||
struct overwrite_string_struct2 {
|
||||
char L[6];
|
||||
int M;
|
||||
} overwrite_string2[] = {
|
||||
{ { "foo" }, 1 },
|
||||
[0].L[4] = 'x' // no-warning
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче