Skip to content

Commit d79a2c7

Browse files
committed
CPP:Make __is_trivial a builtin operation.
1 parent 4ada83c commit d79a2c7

File tree

10 files changed

+8884
-0
lines changed

10 files changed

+8884
-0
lines changed

cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/old.dbscheme

Lines changed: 2213 additions & 0 deletions
Large diffs are not rendered by default.

cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/semmlecode.cpp.dbscheme

Lines changed: 2212 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
description: Make __is_trivial a builtin operation
2+
compatibility: full

cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,3 +1547,21 @@ class BuiltInBitCast extends BuiltInOperation, @builtinbitcast {
15471547

15481548
override string getAPrimaryQlClass() { result = "BuiltInBitCast" }
15491549
}
1550+
1551+
/**
1552+
* A C++ `__is_trivial` built-in operation (used by some implementations of the
1553+
* `<type_traits>` header).
1554+
*
1555+
* Returns `true` if a type is a trivial type.
1556+
* ```
1557+
* template<typename _Tp>
1558+
* struct is_trivial
1559+
* : public integral_constant<bool, __is_trivial(_Tp)>
1560+
* {};
1561+
* ```
1562+
*/
1563+
class BuiltInIsTrivial extends BuiltInOperation, @istrivialexpr {
1564+
override string toString() { result = "__is_trivial" }
1565+
1566+
override string getAPrimaryQlClass() { result = "BuiltInIsTrivial" }
1567+
}

cpp/ql/lib/semmlecode.cpp.dbscheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1755,6 +1755,7 @@ case @expr.kind of
17551755
| @istriviallydestructibleexpr
17561756
| @istriviallyassignableexpr
17571757
| @isnothrowassignableexpr
1758+
| @istrivialexpr
17581759
| @isstandardlayoutexpr
17591760
| @istriviallycopyableexpr
17601761
| @isliteraltypeexpr

0 commit comments

Comments
 (0)