about summary refs log tree commit diff
path: root/tests/ui/codegen/remark-flag-functionality.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/codegen/remark-flag-functionality.rs')
-rw-r--r--tests/ui/codegen/remark-flag-functionality.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/codegen/remark-flag-functionality.rs b/tests/ui/codegen/remark-flag-functionality.rs
new file mode 100644
index 00000000000..797c55ba830
--- /dev/null
+++ b/tests/ui/codegen/remark-flag-functionality.rs
@@ -0,0 +1,30 @@
+//! Check that `-Cremark` flag correctly emits LLVM optimization remarks.
+//!
+//! Regression test for <https://github.com/rust-lang/rust/issues/90924>.
+
+//@ build-pass
+//@ ignore-pass
+//@ revisions: all inline merge1 merge2
+//@ compile-flags: --crate-type=lib -Cdebuginfo=1 -Copt-level=2
+
+// Check that remarks can be enabled individually or with "all":
+//@ [all]    compile-flags: -Cremark=all
+//@ [inline] compile-flags: -Cremark=inline
+
+// Check that values of -Cremark flag are accumulated:
+//@ [merge1] compile-flags: -Cremark=all    -Cremark=giraffe
+//@ [merge2] compile-flags: -Cremark=inline -Cremark=giraffe
+
+//@ dont-check-compiler-stderr
+//@ dont-require-annotations: NOTE
+
+#[no_mangle]
+#[inline(never)]
+pub fn f() {}
+
+#[no_mangle]
+pub fn g() {
+    f();
+}
+
+//~? NOTE inline (missed): 'f' not inlined into 'g'