aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2022-06-16 17:35:16 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2022-06-16 17:35:16 -0400
commitf0da5f0a3161310f2180cccc42a26e0bd02030f0 (patch)
tree290026e5e811ede1edf8fe6cb1871c8ecd876efe /gcc
parentf443024bca7c1ac988eb7c05e639b017347ee714 (diff)
downloadgcc-f0da5f0a3161310f2180cccc42a26e0bd02030f0.zip
gcc-f0da5f0a3161310f2180cccc42a26e0bd02030f0.tar.gz
gcc-f0da5f0a3161310f2180cccc42a26e0bd02030f0.tar.bz2
analyzer: associate -Wanalyzer-va-arg-type-mismatch with CWE-686
gcc/analyzer/ChangeLog: * varargs.cc (va_arg_type_mismatch::emit): Associate the warning with CWE-686 ("Function Call With Incorrect Argument Type"). gcc/testsuite/ChangeLog: * gcc.dg/analyzer/stdarg-1.c (__analyzer_called_by_test_type_mismatch_1): Verify that -Wanalyzer-va-arg-type-mismatch is associated with CWE-686. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/analyzer/varargs.cc13
-rw-r--r--gcc/testsuite/gcc.dg/analyzer/stdarg-1.c2
2 files changed, 9 insertions, 6 deletions
diff --git a/gcc/analyzer/varargs.cc b/gcc/analyzer/varargs.cc
index 3baba79..c92a56d 100644
--- a/gcc/analyzer/varargs.cc
+++ b/gcc/analyzer/varargs.cc
@@ -857,12 +857,15 @@ public:
bool emit (rich_location *rich_loc) final override
{
auto_diagnostic_group d;
+ diagnostic_metadata m;
+ /* "CWE-686: Function Call With Incorrect Argument Type". */
+ m.add_cwe (686);
bool warned
- = warning_at (rich_loc, get_controlling_option (),
- "%<va_arg%> expected %qT but received %qT"
- " for variadic argument %i of %qE",
- m_expected_type, m_actual_type,
- get_variadic_index_for_diagnostic (), m_va_list_tree);
+ = warning_meta (rich_loc, m, get_controlling_option (),
+ "%<va_arg%> expected %qT but received %qT"
+ " for variadic argument %i of %qE",
+ m_expected_type, m_actual_type,
+ get_variadic_index_for_diagnostic (), m_va_list_tree);
return warned;
}
diff --git a/gcc/testsuite/gcc.dg/analyzer/stdarg-1.c b/gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
index 41935f7..f23d28c5 100644
--- a/gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
@@ -195,7 +195,7 @@ __analyzer_called_by_test_type_mismatch_1 (int placeholder, ...)
__builtin_va_list ap;
__builtin_va_start (ap, placeholder);
- i = __builtin_va_arg (ap, int); /* { dg-warning "'va_arg' expected 'int' but received '\[^\n\r\]*' for variadic argument 1 of 'ap'" } */
+ i = __builtin_va_arg (ap, int); /* { dg-warning "'va_arg' expected 'int' but received '\[^\n\r\]*' for variadic argument 1 of 'ap' \\\[CWE-686\\\]" } */
__builtin_va_end (ap);
}