}
fn main() {
- // { dg-final { scan-tree-dump-times {"test1canary"} 1 gimple } }
+ // { dg-final { scan-assembler {"test1canary"} } }
let _ = concat!(a!(), 1, b!());
// should not error
concat!(a!(), true, b!(),);
};
}
+extern "C" {
+ fn printf(fmt: *const i8, ...);
+}
+
+fn print_ptr(s: &str) {
+ unsafe {
+ printf("%p\n\0" as *const str as *const i8, s as *const str);
+ }
+}
+
+fn print_str(s: &str) {
+ unsafe {
+ printf(
+ "%s\n\0" as *const str as *const i8,
+ s as *const str as *const i8,
+ );
+ }
+}
+
+// { dg-final { scan-assembler {"abheyho"} } }
+static S: &str = concat!("a", 'b', a!(), a!(b c d e f a!()), '\0');
+
fn main() {
- // { dg-final { scan-tree-dump-times {"abheyho"} 1 gimple } }
- let _ = concat!("a", 'b', a!(), a!(b c d e f a!()), '\0');
+ print_ptr(S);
+ print_str(S);
}