From 01e7a33e1b6a0ad76d4f7fea3c81bd04ba75ea7e Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Wed, 18 Jun 2025 10:23:21 +0200 Subject: [PATCH] QL4QL: Add test for ql/inline-overlay-caller query --- .../InlineOverlayCaller.expected | 1 + .../InlineOverlayCaller/InlineOverlayCaller.qlref | 1 + .../queries/overlay/InlineOverlayCaller/Test.qll | 14 ++++++++++++++ 3 files changed, 16 insertions(+) create mode 100644 ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected create mode 100644 ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref create mode 100644 ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected new file mode 100644 index 00000000000..d89f1dcb8ef --- /dev/null +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected @@ -0,0 +1 @@ +| Test.qll:7:11:7:13 | ClasslessPredicate foo | This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an `overlay[caller]` annotation to allow inlining across the overlay frontier. Note that adding an `overlay[caller]` annotation affects semantics under overlay evaluation. | diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref new file mode 100644 index 00000000000..0347e9eedc5 --- /dev/null +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref @@ -0,0 +1 @@ +queries/overlay/InlineOverlayCaller.ql diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll b/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll new file mode 100644 index 00000000000..3e72490ebb0 --- /dev/null +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll @@ -0,0 +1,14 @@ +overlay[local?] +module; + +import ql + +pragma[inline] +predicate foo(int x) { x = 42 } + +overlay[caller] +pragma[inline] +predicate bar(int x) { x = 43 } + +pragma[inline] +private predicate baz(int x) { x = 44 }