r297283 - [analyzer] Clarify 'uninitialized function argument' messages
Daniel Marjamaki via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 8 07:22:25 PST 2017
Author: danielmarjamaki
Date: Wed Mar 8 09:22:24 2017
New Revision: 297283
URL: http://llvm.org/viewvc/llvm-project?rev=297283&view=rev
Log:
[analyzer] Clarify 'uninitialized function argument' messages
Differential Revision: https://reviews.llvm.org/D30341
Modified:
cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
cfe/trunk/test/Analysis/NewDelete-checker-test.cpp
cfe/trunk/test/Analysis/diagnostics/undef-value-param.m
cfe/trunk/test/Analysis/malloc.m
cfe/trunk/test/Analysis/misc-ps-region-store.m
cfe/trunk/test/Analysis/misc-ps.m
cfe/trunk/test/Analysis/null-deref-ps.c
cfe/trunk/test/Analysis/nullptr.cpp
cfe/trunk/test/Analysis/uninit-const.c
cfe/trunk/test/Analysis/uninit-const.cpp
cfe/trunk/test/Analysis/uninit-msg-expr.m
cfe/trunk/test/Analysis/uninit-vals-ps.c
cfe/trunk/test/Analysis/uninit-vals.cpp
Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp Wed Mar 8 09:22:24 2017
@@ -21,6 +21,7 @@
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
#include "llvm/ADT/SmallString.h"
+#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/raw_ostream.h"
using namespace clang;
@@ -71,7 +72,7 @@ public:
private:
bool PreVisitProcessArg(CheckerContext &C, SVal V, SourceRange ArgRange,
- const Expr *ArgEx, bool IsFirstArgument,
+ const Expr *ArgEx, int ArgumentNumber,
bool CheckUninitFields, const CallEvent &Call,
std::unique_ptr<BugType> &BT,
const ParmVarDecl *ParamDecl) const;
@@ -89,9 +90,10 @@ private:
BT.reset(new BuiltinBug(this, desc));
}
bool uninitRefOrPointer(CheckerContext &C, const SVal &V,
- SourceRange ArgRange,
- const Expr *ArgEx, std::unique_ptr<BugType> &BT,
- const ParmVarDecl *ParamDecl, const char *BD) const;
+ SourceRange ArgRange, const Expr *ArgEx,
+ std::unique_ptr<BugType> &BT,
+ const ParmVarDecl *ParamDecl, const char *BD,
+ int ArgumentNumber) const;
};
} // end anonymous namespace
@@ -111,38 +113,45 @@ void CallAndMessageChecker::emitBadCall(
C.emitReport(std::move(R));
}
-static StringRef describeUninitializedArgumentInCall(const CallEvent &Call,
- bool IsFirstArgument) {
+static void describeUninitializedArgumentInCall(const CallEvent &Call,
+ int ArgumentNumber,
+ llvm::raw_svector_ostream &Os) {
switch (Call.getKind()) {
case CE_ObjCMessage: {
const ObjCMethodCall &Msg = cast<ObjCMethodCall>(Call);
switch (Msg.getMessageKind()) {
case OCM_Message:
- return "Argument in message expression is an uninitialized value";
+ Os << (ArgumentNumber + 1) << llvm::getOrdinalSuffix(ArgumentNumber + 1)
+ << " argument in message expression is an uninitialized value";
+ return;
case OCM_PropertyAccess:
assert(Msg.isSetter() && "Getters have no args");
- return "Argument for property setter is an uninitialized value";
+ Os << "Argument for property setter is an uninitialized value";
+ return;
case OCM_Subscript:
- if (Msg.isSetter() && IsFirstArgument)
- return "Argument for subscript setter is an uninitialized value";
- return "Subscript index is an uninitialized value";
+ if (Msg.isSetter() && (ArgumentNumber == 0))
+ Os << "Argument for subscript setter is an uninitialized value";
+ else
+ Os << "Subscript index is an uninitialized value";
+ return;
}
llvm_unreachable("Unknown message kind.");
}
case CE_Block:
- return "Block call argument is an uninitialized value";
+ Os << (ArgumentNumber + 1) << llvm::getOrdinalSuffix(ArgumentNumber + 1)
+ << " block call argument is an uninitialized value";
+ return;
default:
- return "Function call argument is an uninitialized value";
+ Os << (ArgumentNumber + 1) << llvm::getOrdinalSuffix(ArgumentNumber + 1)
+ << " function call argument is an uninitialized value";
+ return;
}
}
-bool CallAndMessageChecker::uninitRefOrPointer(CheckerContext &C,
- const SVal &V,
- SourceRange ArgRange,
- const Expr *ArgEx,
- std::unique_ptr<BugType> &BT,
- const ParmVarDecl *ParamDecl,
- const char *BD) const {
+bool CallAndMessageChecker::uninitRefOrPointer(
+ CheckerContext &C, const SVal &V, SourceRange ArgRange, const Expr *ArgEx,
+ std::unique_ptr<BugType> &BT, const ParmVarDecl *ParamDecl, const char *BD,
+ int ArgumentNumber) const {
if (!Filter.Check_CallAndMessageUnInitRefArg)
return false;
@@ -153,12 +162,15 @@ bool CallAndMessageChecker::uninitRefOrP
// If parameter is declared as pointer to const in function declaration,
// then check if corresponding argument in function call is
// pointing to undefined symbol value (uninitialized memory).
- StringRef Message;
+ SmallString<200> Buf;
+ llvm::raw_svector_ostream Os(Buf);
if (ParamDecl->getType()->isPointerType()) {
- Message = "Function call argument is a pointer to uninitialized value";
+ Os << (ArgumentNumber + 1) << llvm::getOrdinalSuffix(ArgumentNumber + 1)
+ << " function call argument is a pointer to uninitialized value";
} else if (ParamDecl->getType()->isReferenceType()) {
- Message = "Function call argument is an uninitialized value";
+ Os << (ArgumentNumber + 1) << llvm::getOrdinalSuffix(ArgumentNumber + 1)
+ << " function call argument is an uninitialized value";
} else
return false;
@@ -171,7 +183,7 @@ bool CallAndMessageChecker::uninitRefOrP
if (PSV.isUndef()) {
if (ExplodedNode *N = C.generateErrorNode()) {
LazyInit_BT(BD, BT);
- auto R = llvm::make_unique<BugReport>(*BT, Message, N);
+ auto R = llvm::make_unique<BugReport>(*BT, Os.str(), N);
R->addRange(ArgRange);
if (ArgEx) {
bugreporter::trackNullOrUndefValue(N, ArgEx, *R);
@@ -188,7 +200,7 @@ bool CallAndMessageChecker::PreVisitProc
SVal V,
SourceRange ArgRange,
const Expr *ArgEx,
- bool IsFirstArgument,
+ int ArgumentNumber,
bool CheckUninitFields,
const CallEvent &Call,
std::unique_ptr<BugType> &BT,
@@ -196,17 +208,19 @@ bool CallAndMessageChecker::PreVisitProc
) const {
const char *BD = "Uninitialized argument value";
- if (uninitRefOrPointer(C, V, ArgRange, ArgEx, BT, ParamDecl, BD))
+ if (uninitRefOrPointer(C, V, ArgRange, ArgEx, BT, ParamDecl, BD,
+ ArgumentNumber))
return true;
if (V.isUndef()) {
if (ExplodedNode *N = C.generateErrorNode()) {
LazyInit_BT(BD, BT);
-
// Generate a report for this bug.
- StringRef Desc =
- describeUninitializedArgumentInCall(Call, IsFirstArgument);
- auto R = llvm::make_unique<BugReport>(*BT, Desc, N);
+ SmallString<200> Buf;
+ llvm::raw_svector_ostream Os(Buf);
+ describeUninitializedArgumentInCall(Call, ArgumentNumber, Os);
+ auto R = llvm::make_unique<BugReport>(*BT, Os.str(), N);
+
R->addRange(ArgRange);
if (ArgEx)
bugreporter::trackNullOrUndefValue(N, ArgEx, *R);
@@ -435,7 +449,7 @@ void CallAndMessageChecker::checkPreCall
if(FD && i < FD->getNumParams())
ParamDecl = FD->getParamDecl(i);
if (PreVisitProcessArg(C, Call.getArgSVal(i), Call.getArgSourceRange(i),
- Call.getArgExpr(i), /*IsFirstArgument=*/i == 0,
+ Call.getArgExpr(i), i,
checkUninitFields, Call, *BT, ParamDecl))
return;
}
Modified: cfe/trunk/test/Analysis/NewDelete-checker-test.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/NewDelete-checker-test.cpp?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/NewDelete-checker-test.cpp (original)
+++ cfe/trunk/test/Analysis/NewDelete-checker-test.cpp Wed Mar 8 09:22:24 2017
@@ -244,7 +244,7 @@ void testUninitDeleteArray() {
void testUninitFree() {
int *x;
- free(x); // expected-warning{{Function call argument is an uninitialized value}}
+ free(x); // expected-warning{{1st function call argument is an uninitialized value}}
}
void testUninitDeleteSink() {
Modified: cfe/trunk/test/Analysis/diagnostics/undef-value-param.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/diagnostics/undef-value-param.m?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/diagnostics/undef-value-param.m (original)
+++ cfe/trunk/test/Analysis/diagnostics/undef-value-param.m Wed Mar 8 09:22:24 2017
@@ -45,8 +45,8 @@ SCDynamicStoreRef anotherCreateRef(unsig
CreateRefUndef(&storeRef, 4);
//expected-note at -1{{Calling 'CreateRefUndef'}}
//expected-note at -2{{Returning from 'CreateRefUndef'}}
- CFRelease(storeRef); //expected-warning {{Function call argument is an uninitialized value}}
- //expected-note at -1{{Function call argument is an uninitialized value}}
+ CFRelease(storeRef); //expected-warning {{1st function call argument is an uninitialized value}}
+ //expected-note at -1{{1st function call argument is an uninitialized value}}
}
@end
@@ -918,12 +918,12 @@ static void CreateRefUndef(SCDynamicStor
// CHECK-NEXT: </array>
// CHECK-NEXT: <key>depth</key><integer>0</integer>
// CHECK-NEXT: <key>extended_message</key>
-// CHECK-NEXT: <string>Function call argument is an uninitialized value</string>
+// CHECK-NEXT: <string>1st function call argument is an uninitialized value</string>
// CHECK-NEXT: <key>message</key>
-// CHECK-NEXT: <string>Function call argument is an uninitialized value</string>
+// CHECK-NEXT: <string>1st function call argument is an uninitialized value</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
-// CHECK-NEXT: <key>description</key><string>Function call argument is an uninitialized value</string>
+// CHECK-NEXT: <key>description</key><string>1st function call argument is an uninitialized value</string>
// CHECK-NEXT: <key>category</key><string>Logic error</string>
// CHECK-NEXT: <key>type</key><string>Uninitialized argument value</string>
// CHECK-NEXT: <key>check_name</key><string>core.CallAndMessage</string>
Modified: cfe/trunk/test/Analysis/malloc.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/malloc.m?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/malloc.m (original)
+++ cfe/trunk/test/Analysis/malloc.m Wed Mar 8 09:22:24 2017
@@ -29,7 +29,7 @@ void rdar10579586(char x);
if (error != ((void*)0))
return error;
- rdar10579586(buffer->str_c); // expected-warning {{Function call argument is an uninitialized value}}
+ rdar10579586(buffer->str_c); // expected-warning {{1st function call argument is an uninitialized value}}
free(buffer);
return ((void*)0);
}
Modified: cfe/trunk/test/Analysis/misc-ps-region-store.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps-region-store.m?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/misc-ps-region-store.m (original)
+++ cfe/trunk/test/Analysis/misc-ps-region-store.m Wed Mar 8 09:22:24 2017
@@ -396,7 +396,7 @@ void rdar_7332673_test1() {
int rdar_7332673_test2_aux(char *x);
void rdar_7332673_test2() {
char *value;
- if ( rdar_7332673_test2_aux(value) != 1 ) {} // expected-warning{{Function call argument is an uninitialized value}}
+ if ( rdar_7332673_test2_aux(value) != 1 ) {} // expected-warning{{1st function call argument is an uninitialized value}}
}
//===----------------------------------------------------------------------===//
@@ -673,7 +673,7 @@ typedef void (^RDar_7462324_Callback)(id
builder = ^(id object) {
id x;
if (object) {
- builder(x); // expected-warning{{Block call argument is an uninitialized value}}
+ builder(x); // expected-warning{{1st block call argument is an uninitialized value}}
}
};
builder(target);
Modified: cfe/trunk/test/Analysis/misc-ps.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps.m?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/misc-ps.m (original)
+++ cfe/trunk/test/Analysis/misc-ps.m Wed Mar 8 09:22:24 2017
@@ -796,7 +796,7 @@ int test_uninit_branch_c(void) {
void test_bad_call_aux(int x);
void test_bad_call(void) {
int y;
- test_bad_call_aux(y); // expected-warning{{Function call argument is an uninitialized value}}
+ test_bad_call_aux(y); // expected-warning{{1st function call argument is an uninitialized value}}
}
@interface TestBadArg {}
@@ -805,7 +805,7 @@ void test_bad_call(void) {
void test_bad_msg(TestBadArg *p) {
int y;
- [p testBadArg:y]; // expected-warning{{Argument in message expression is an uninitialized value}}
+ [p testBadArg:y]; // expected-warning{{1st argument in message expression is an uninitialized value}}
}
//===----------------------------------------------------------------------===//
Modified: cfe/trunk/test/Analysis/null-deref-ps.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/null-deref-ps.c?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/null-deref-ps.c (original)
+++ cfe/trunk/test/Analysis/null-deref-ps.c Wed Mar 8 09:22:24 2017
@@ -286,7 +286,7 @@ void pr4759_aux(int *p) __attribute__((n
void pr4759() {
int *p;
- pr4759_aux(p); // expected-warning{{Function call argument is an uninitialized value}}
+ pr4759_aux(p); // expected-warning{{1st function call argument is an uninitialized value}}
}
// Relax function call arguments invalidation to be aware of const
Modified: cfe/trunk/test/Analysis/nullptr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/nullptr.cpp?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/nullptr.cpp (original)
+++ cfe/trunk/test/Analysis/nullptr.cpp Wed Mar 8 09:22:24 2017
@@ -107,7 +107,7 @@ struct Type {
void shouldNotCrash() {
decltype(nullptr) p;
if (getSymbol())
- invokeF(p); // expected-warning{{Function call argument is an uninit}}
+ invokeF(p); // expected-warning{{1st function call argument is an uninit}}
if (getSymbol())
invokeF(nullptr);
if (getSymbol()) {
Modified: cfe/trunk/test/Analysis/uninit-const.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-const.c?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/uninit-const.c (original)
+++ cfe/trunk/test/Analysis/uninit-const.c Wed Mar 8 09:22:24 2017
@@ -24,16 +24,16 @@ void doStuff_variadic(const int *u, ...)
void f_1(void) {
int t;
int* tp = &t; // expected-note {{'tp' initialized here}}
- doStuff_pointerToConstInt(tp); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_pointerToConstInt(tp); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f_1_1(void) {
int t;
int* tp1 = &t;
int* tp2 = tp1; // expected-note {{'tp2' initialized here}}
- doStuff_pointerToConstInt(tp2); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_pointerToConstInt(tp2); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
@@ -45,8 +45,8 @@ void f_2(void) {
int t;
int* p = f_2_sub(&t);
int* tp = p; // expected-note {{'tp' initialized here}}
- doStuff_pointerToConstInt(tp); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_pointerToConstInt(tp); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
int z;
@@ -62,14 +62,14 @@ void f_4(void) {
void f_5(void) {
int ta[5];
int* tp = ta; // expected-note {{'tp' initialized here}}
- doStuff_pointerToConstInt(tp); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_pointerToConstInt(tp); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f_5_1(void) {
int ta[5]; // expected-note {{'ta' initialized here}}
- doStuff_pointerToConstInt(ta); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_pointerToConstInt(ta); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f_6(void) {
@@ -92,27 +92,27 @@ void f_7(void) {
void f_8(void) {
int g; // expected-note {{'g' declared without an initial value}}
- doStuff2(g); // expected-warning {{Function call argument is an uninitialized value}}
- // expected-note at -1 {{Function call argument is an uninitialized value}}
+ doStuff2(g); // expected-warning {{1st function call argument is an uninitialized value}}
+ // expected-note at -1 {{1st function call argument is an uninitialized value}}
}
void f_9(void) {
int a[6];
int const *ptau = a; // expected-note {{'ptau' initialized here}}
- doStuff_arrayOfConstInt(ptau); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_arrayOfConstInt(ptau); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f_10(void) {
int a[6]; // expected-note {{'a' initialized here}}
- doStuff_arrayOfConstInt(a); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_arrayOfConstInt(a); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f_11(void) {
int t[10]; //expected-note {{'t' initialized here}}
- doStuff_constStaticSizedArray(t); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_constStaticSizedArray(t); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f_12(void) {
@@ -126,8 +126,8 @@ int f_malloc_1(void) {
ptr = (int *)malloc(sizeof(int)); // expected-note {{Value assigned to 'ptr'}}
- doStuff_pointerToConstInt(ptr); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_pointerToConstInt(ptr); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
free(ptr);
return 0;
}
@@ -148,16 +148,16 @@ void f_variadic_unp_unv(void) {
int t;
int v;
int* tp = &t; // expected-note {{'tp' initialized here}}
- doStuff_variadic(tp,v); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_variadic(tp,v); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
// uninit pointer, init val
void f_variadic_unp_inv(void) {
int t;
int v = 3;
int* tp = &t; // expected-note {{'tp' initialized here}}
- doStuff_variadic(tp,v); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_variadic(tp,v); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
// init pointer, uninit val
@@ -165,8 +165,8 @@ void f_variadic_inp_unv(void) {
int t=5;
int v; // expected-note {{'v' declared without an initial value}}
int* tp = &t;
- doStuff_variadic(tp,v);// expected-warning {{Function call argument is an uninitialized value}}
- // expected-note at -1 {{Function call argument is an uninitialized value}}
+ doStuff_variadic(tp,v);// expected-warning {{2nd function call argument is an uninitialized value}}
+ // expected-note at -1 {{2nd function call argument is an uninitialized value}}
}
// init pointer, init val
@@ -192,8 +192,8 @@ void f_variadic_unp_inp(void) {
int u=3;
int *vp = &u ;
int *tp = &t; // expected-note {{'tp' initialized here}}
- doStuff_variadic(tp,vp); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_variadic(tp,vp); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
//init pointer, uninit pointer
@@ -211,6 +211,6 @@ void f_variadic_unp_unp(void) {
int u;
int *vp = &u ;
int *tp = &t; // expected-note {{'tp' initialized here}}
- doStuff_variadic(tp,vp); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_variadic(tp,vp); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
Modified: cfe/trunk/test/Analysis/uninit-const.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-const.cpp?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/uninit-const.cpp (original)
+++ cfe/trunk/test/Analysis/uninit-const.cpp Wed Mar 8 09:22:24 2017
@@ -66,8 +66,8 @@ void f6_2(void) {
int &p = t;
int &s = p;
int &q = s; //expected-note {{'q' initialized here}}
- doStuff6(q); //expected-warning {{Function call argument is an uninitialized value}}
- //expected-note at -1 {{Function call argument is an uninitialized value}}
+ doStuff6(q); //expected-warning {{1st function call argument is an uninitialized value}}
+ //expected-note at -1 {{1st function call argument is an uninitialized value}}
}
void doStuff6_3(int& q_, int *ptr_) {}
@@ -78,15 +78,15 @@ void f6_3(void) {
int &p = t;
int &s = p;
int &q = s;
- doStuff6_3(q,ptr); //expected-warning {{Function call argument is an uninitialized value}}
- //expected-note at -1 {{Function call argument is an uninitialized value}}
+ doStuff6_3(q,ptr); //expected-warning {{2nd function call argument is an uninitialized value}}
+ //expected-note at -1 {{2nd function call argument is an uninitialized value}}
}
void f6(void) {
int k; // expected-note {{'k' declared without an initial value}}
- doStuff6(k); // expected-warning {{Function call argument is an uninitialized value}}
- // expected-note at -1 {{Function call argument is an uninitialized value}}
+ doStuff6(k); // expected-warning {{1st function call argument is an uninitialized value}}
+ // expected-note at -1 {{1st function call argument is an uninitialized value}}
}
@@ -95,15 +95,15 @@ void f6(void) {
void f5(void) {
int t;
int* tp = &t; // expected-note {{'tp' initialized here}}
- doStuff_uninit(tp); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_uninit(tp); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
void f4(void) {
int y; // expected-note {{'y' declared without an initial value}}
- doStuff4(y); // expected-warning {{Function call argument is an uninitialized value}}
- // expected-note at -1 {{Function call argument is an uninitialized value}}
+ doStuff4(y); // expected-warning {{1st function call argument is an uninitialized value}}
+ // expected-note at -1 {{1st function call argument is an uninitialized value}}
}
void f3(void) {
@@ -123,6 +123,6 @@ void f1(void) {
void f_uninit(void) {
int x;
- doStuff_uninit(&x); // expected-warning {{Function call argument is a pointer to uninitialized value}}
- // expected-note at -1 {{Function call argument is a pointer to uninitialized value}}
+ doStuff_uninit(&x); // expected-warning {{1st function call argument is a pointer to uninitialized value}}
+ // expected-note at -1 {{1st function call argument is a pointer to uninitialized value}}
}
Modified: cfe/trunk/test/Analysis/uninit-msg-expr.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-msg-expr.m?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/uninit-msg-expr.m (original)
+++ cfe/trunk/test/Analysis/uninit-msg-expr.m Wed Mar 8 09:22:24 2017
@@ -52,5 +52,5 @@ unsigned f2() {
void f3() {
NSMutableArray *aArray = [NSArray array];
NSString *aString;
- [aArray addObject:aString]; // expected-warning {{Argument in message expression is an uninitialized value}}
+ [aArray addObject:aString]; // expected-warning {{1st argument in message expression is an uninitialized value}}
}
Modified: cfe/trunk/test/Analysis/uninit-vals-ps.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-vals-ps.c?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/uninit-vals-ps.c (original)
+++ cfe/trunk/test/Analysis/uninit-vals-ps.c Wed Mar 8 09:22:24 2017
@@ -14,7 +14,7 @@ int f1_a(struct FPRec* foo) {
int f1_b() {
int x;
- return bar(x)+1; // expected-warning{{Function call argument is an uninitialized value}}
+ return bar(x)+1; // expected-warning{{1st function call argument is an uninitialized value}}
}
int f2() {
Modified: cfe/trunk/test/Analysis/uninit-vals.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-vals.cpp?rev=297283&r1=297282&r2=297283&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/uninit-vals.cpp (original)
+++ cfe/trunk/test/Analysis/uninit-vals.cpp Wed Mar 8 09:22:24 2017
@@ -27,7 +27,7 @@ void foo() {
// case with undefined values, too.
c1.b.a = c2->b.a;
#else
- c1.b.a = c2->b.a; // expected-warning{{Function call argument is an uninitialized value}}
+ c1.b.a = c2->b.a; // expected-warning{{1st function call argument is an uninitialized value}}
#endif
}
}
More information about the cfe-commits
mailing list