================
@@ -280,11 +307,65 @@ void test_myprintf(char * Str, std::string StdStr) {
   myprintf_3("irrelevant", "hello %s", 0, StdStr.c_str());
   myprintf_3("irrelevant", "hello %s", 0, Str);  // expected-warning{{function 
'myprintf_3' is unsafe}} \
                                       expected-note{{string argument is not 
guaranteed to be null-terminated}}
-  
   myscanf("hello %s");
   myscanf("hello %s", Str); // expected-warning{{function 'myscanf' is unsafe}}
 
+  myprintf_default("irrelevant");
+
   int X;
 
   myscanf("hello %d", &X); // expected-warning{{function 'myscanf' is unsafe}}
+
+  // Test member functions:
+  FormatAttrTestMember Obj;
+
+  Obj.myprintf("hello", Str);
+  Obj.myprintf("hello %s", StdStr.c_str());
+  Obj.myprintf("hello %s", Str);  // expected-warning{{function 'myprintf' is 
unsafe}} \
+                                expected-note{{string argument is not 
guaranteed to be null-terminated}}
+
+  Obj.myprintf_2("hello", 0, Str);
+  Obj.myprintf_2("hello %s", 0, StdStr.c_str());
+  Obj.myprintf_2("hello %s", 0, Str);  // expected-warning{{function 
'myprintf_2' is unsafe}} \
+                                     expected-note{{string argument is not 
guaranteed to be null-terminated}}
+
+  Obj.myprintf_3("irrelevant", "hello", 0, Str);
+  Obj.myprintf_3("irrelevant", "hello %s", 0, StdStr.c_str());
+  Obj.myprintf_3("irrelevant", "hello %s", 0, Str);  // 
expected-warning{{function 'myprintf_3' is unsafe}} \
+                                      expected-note{{string argument is not 
guaranteed to be null-terminated}}
+
+  Obj.myscanf("hello %s");
+  Obj.myscanf("hello %s", Str); // expected-warning{{function 'myscanf' is 
unsafe}}
+
+  Obj.myscanf("hello %d", &X); // expected-warning{{function 'myscanf' is 
unsafe}}
+
+  Obj.myprintf_default("irrelevant"); // expected-warning{{function 
'myprintf_default' is unsafe}}
+  // expected-note@*{{string argument is not guaranteed to be null-terminated}}
----------------
ziqingluo-90 wrote:

@ojhunt  one more mild irritating fact:  CXXDefaultArgExpr has no valid 
`BeginLoc` 🫠

https://github.com/llvm/llvm-project/pull/174683
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to