diff options
| author | bors <bors@rust-lang.org> | 2023-05-05 15:59:20 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-05-05 15:59:20 +0000 |
| commit | 4b94c232192b0fa0314b5afa18e366356e210c4c (patch) | |
| tree | 5e16d07c49b6de25df631d2e0a9ef9947795714c /compiler/rustc_builtin_macros/src | |
| parent | 4a18324a4df6bc98bec0b54d35908d7a9cdc7c32 (diff) | |
| parent | c99ab29e6b2736006f22781802f3b5bd805139af (diff) | |
| download | rust-4b94c232192b0fa0314b5afa18e366356e210c4c.tar.gz rust-4b94c232192b0fa0314b5afa18e366356e210c4c.zip | |
Auto merge of #111248 - Dylan-DPC:rollup-lbp0ui3, r=Dylan-DPC
Rollup of 6 pull requests
Successful merges:
- #103056 (Fix `checked_{add,sub}_duration` incorrectly returning `None` when `other` has more than `i64::MAX` seconds)
- #108801 (Implement RFC 3348, `c"foo"` literals)
- #110773 (Reduce MIR dump file count for MIR-opt tests)
- #110876 (Added default target cpu to `--print target-cpus` output and updated docs)
- #111068 (Improve check-cfg implementation)
- #111238 (btree_map: `Cursor{,Mut}::peek_prev` must agree)
Failed merges:
- #110694 (Implement builtin # syntax and use it for offset_of!(...))
r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_builtin_macros/src')
| -rw-r--r-- | compiler/rustc_builtin_macros/src/concat.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_builtin_macros/src/concat_bytes.rs | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_builtin_macros/src/concat.rs b/compiler/rustc_builtin_macros/src/concat.rs index b92964d03e9..50e88ae2eee 100644 --- a/compiler/rustc_builtin_macros/src/concat.rs +++ b/compiler/rustc_builtin_macros/src/concat.rs @@ -32,6 +32,10 @@ pub fn expand_concat( Ok(ast::LitKind::Bool(b)) => { accumulator.push_str(&b.to_string()); } + Ok(ast::LitKind::CStr(..)) => { + cx.span_err(e.span, "cannot concatenate a C string literal"); + has_errors = true; + } Ok(ast::LitKind::Byte(..) | ast::LitKind::ByteStr(..)) => { cx.emit_err(errors::ConcatBytestr { span: e.span }); has_errors = true; diff --git a/compiler/rustc_builtin_macros/src/concat_bytes.rs b/compiler/rustc_builtin_macros/src/concat_bytes.rs index ba639c0a9fe..5ef35af0a05 100644 --- a/compiler/rustc_builtin_macros/src/concat_bytes.rs +++ b/compiler/rustc_builtin_macros/src/concat_bytes.rs @@ -18,6 +18,11 @@ fn invalid_type_err( }; let snippet = cx.sess.source_map().span_to_snippet(span).ok(); match ast::LitKind::from_token_lit(token_lit) { + Ok(ast::LitKind::CStr(_, _)) => { + // FIXME(c_str_literals): should concatenation of C string literals + // include the null bytes in the end? + cx.span_err(span, "cannot concatenate C string literals"); + } Ok(ast::LitKind::Char(_)) => { let sugg = snippet.map(|snippet| ConcatBytesInvalidSuggestion::CharLit { span, snippet }); |
