
A significant number of our tests in C accidentally use functions without prototypes. This patch converts the function signatures to have a prototype for the situations where the test is not specific to K&R C declarations. e.g., void func(); becomes void func(void); This is the eighth batch of tests being updated (there are a significant number of other tests left to be updated).
32 lines
727 B
C
32 lines
727 B
C
// RUN: %clang_analyze_cc1 -std=c11 -analyzer-checker=alpha.clone.CloneChecker -analyzer-config alpha.clone.CloneChecker:MinimumCloneComplexity=10 -verify %s
|
|
|
|
// expected-no-diagnostics
|
|
|
|
int global;
|
|
|
|
int foo1(void) {
|
|
if (global > 0)
|
|
return 0;
|
|
else if (global < 0)
|
|
return _Generic(global, double: 1, float: 2, default: 3);
|
|
return 1;
|
|
}
|
|
|
|
// Different associated type (int instead of float)
|
|
int foo2(void) {
|
|
if (global > 0)
|
|
return 0;
|
|
else if (global < 0)
|
|
return _Generic(global, double: 1, int: 2, default: 4);
|
|
return 1;
|
|
}
|
|
|
|
// Different number of associated types.
|
|
int foo3(void) {
|
|
if (global > 0)
|
|
return 0;
|
|
else if (global < 0)
|
|
return _Generic(global, double: 1, default: 4);
|
|
return 1;
|
|
}
|