mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Merge pull request #1647 from zlaski-semmle/zlaski/builtin-types-compatible-p
Approved by dave-bartolomeo
This commit is contained in:
@@ -210,10 +210,15 @@ class BuiltInOperationIsUnion extends BuiltInOperation, @isunionexpr {
|
||||
}
|
||||
|
||||
/**
|
||||
* A C++ `__builtin_types` expression (used by some implementations of the type_traits header).
|
||||
* DEPRECATED: Use `BuiltInOperationBuiltInTypesCompatibleP` instead.
|
||||
*/
|
||||
class BuiltInOperationBuiltInTypes extends BuiltInOperation, @typescompexpr {
|
||||
override string toString() { result = "__builtin_types" }
|
||||
deprecated class BuiltInOperationBuiltInTypes = BuiltInOperationBuiltInTypesCompatibleP;
|
||||
|
||||
/**
|
||||
* A C++ `__builtin_types_compatible_p` expression (used by some implementations of the type_traits header).
|
||||
*/
|
||||
class BuiltInOperationBuiltInTypesCompatibleP extends BuiltInOperation, @typescompexpr {
|
||||
override string toString() { result = "__builtin_types_compatible_p" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
| choose_expr.c:3:13:3:42 | __builtin_choose_expr |
|
||||
| types.c:4:9:4:57 | __builtin_types_compatible_p |
|
||||
| types.c:6:16:6:65 | __builtin_types_compatible_p |
|
||||
| varargs.c:7:5:7:32 | __builtin_va_start |
|
||||
| varargs.c:9:13:9:37 | __builtin_va_arg |
|
||||
| varargs.c:11:5:11:24 | __builtin_va_end |
|
||||
|
||||
11
cpp/ql/test/library-tests/builtins/builtins/types.c
Normal file
11
cpp/ql/test/library-tests/builtins/builtins/types.c
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char *s;
|
||||
if (__builtin_types_compatible_p(__typeof__(s), long)) {
|
||||
puts("long");
|
||||
} else if (__builtin_types_compatible_p(__typeof__(s), char*)) {
|
||||
puts("str");
|
||||
}
|
||||
return (0);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user