rust/compiler
Jubilee bd43f8e9fd
Rollup merge of #132260 - Zalathar:type-safe-cast, r=compiler-errors
cg_llvm: Use a type-safe helper to cast `&str` and `&[u8]` to `*const c_char`

In `rustc_codegen_llvm` there are many uses of `.as_ptr().cast()` to convert a string or byte-slice to `*const c_char`, which then gets passed through FFI.

This works, but is fragile, because there's nothing constraining the pointer cast to actually be from `u8` to `c_char`. If the original value changes to something else that has an `as_ptr` method, or the context changes to expect something other than `c_char`, the cast will silently do the wrong thing.

By making the cast more explicit via a helper method, we can be sure that it will either perform the intended cast, or fail at compile time.
2024-10-28 10:18:52 -07:00
..
rustc disable size asserts in the compiler when randomizing layouts 2024-08-31 23:56:45 +02:00
rustc_abi Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_arena move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
rustc_ast Auto merge of #125116 - blyxyas:ignore-allowed-lints-final, r=cjgillot 2024-10-26 16:37:43 +00:00
rustc_ast_ir Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
rustc_ast_lowering more consistent debug_assertions 2024-10-28 14:13:39 +08:00
rustc_ast_passes Rollup merge of #132214 - fmease:mv-impl-trait-val-paths, r=compiler-errors 2024-10-27 19:49:07 +01:00
rustc_ast_pretty Print unsafety of attribute in AST unpretty 2024-10-26 13:33:36 +02:00
rustc_attr Re-do recursive const stability checks 2024-10-25 20:31:40 +02:00
rustc_baked_icu_data Don't add warn(unreachable_pub) to rustc_baked_icu. 2024-08-16 08:46:52 +10:00
rustc_borrowck Rollup merge of #131756 - compiler-errors:deeply-normalize-type-err, r=lcnr 2024-10-24 14:19:55 +11:00
rustc_builtin_macros Auto merge of #131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors 2024-10-27 17:04:12 +00:00
rustc_codegen_cranelift cg_clif: Rename LayoutS to LayoutData 2024-10-27 22:32:40 -07:00
rustc_codegen_gcc Effects cleanup 2024-10-26 10:19:07 +08:00
rustc_codegen_llvm Rollup merge of #132260 - Zalathar:type-safe-cast, r=compiler-errors 2024-10-28 10:18:52 -07:00
rustc_codegen_ssa compiler: Add is_uninhabited and use LayoutS accessors 2024-10-28 09:58:30 -07:00
rustc_const_eval compiler: Add is_uninhabited and use LayoutS accessors 2024-10-28 09:58:30 -07:00
rustc_data_structures Replace an FTP link in comments with an equivalent HTTPS link 2024-10-24 17:02:11 +11:00
rustc_driver
rustc_driver_impl Rollup merge of #130899 - bjorn3:wasi_bootstrap_fixes, r=davidtwco 2024-10-07 11:10:53 -07:00
rustc_error_codes Move an impl-Trait check from AST validation to AST lowering 2024-10-27 07:41:52 +01:00
rustc_error_messages Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_errors compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_expand expand: Stop using artificial ast::Item for macros loaded from metadata 2024-10-26 22:08:55 +03:00
rustc_feature Auto merge of #131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors 2024-10-27 17:04:12 +00:00
rustc_fluent_macro use tracked_path in rustc_fluent_macro 2024-10-19 22:32:38 +08:00
rustc_fs_util Couple of changes to make it easier to compile rustc for wasm 2024-09-26 19:51:14 +00:00
rustc_graphviz Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir Remove associated type based effects logic 2024-10-24 09:46:36 +00:00
rustc_hir_analysis Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_hir_pretty Remove associated type based effects logic 2024-10-24 09:46:36 +00:00
rustc_hir_typeck Remove ObligationCause::span() method 2024-10-27 23:54:06 +00:00
rustc_incremental nightly feature tracking: get rid of the per-feature bool fields 2024-10-23 09:14:41 +01:00
rustc_index Rollup merge of #130625 - heiseish:issue-124028-fix, r=jieyouxu 2024-10-10 12:49:18 +02:00
rustc_index_macros Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_infer Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
rustc_interface Remove module passes filtering 2024-10-19 16:20:51 +02:00
rustc_lexer Reserve guarded string literals (RFC 3593) 2024-10-08 18:21:16 -06:00
rustc_lint Rollup merge of #132249 - workingjubilee:add-rustc-abi, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_lint_defs Auto merge of #125116 - blyxyas:ignore-allowed-lints-final, r=cjgillot 2024-10-26 16:37:43 +00:00
rustc_llvm Use LLVM-C APIs for getting/setting visibility 2024-10-27 11:05:33 +11:00
rustc_log Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_macros give a better error for tuple structs in derive(Diagnostic) 2024-10-27 21:23:28 -04:00
rustc_metadata compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_middle Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_mir_build Rollup merge of #129248 - compiler-errors:raw-ref-deref, r=nnethercote 2024-10-24 10:35:39 +02:00
rustc_mir_dataflow compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_mir_transform compiler: Add is_uninhabited and use LayoutS accessors 2024-10-28 09:58:30 -07:00
rustc_monomorphize Auto merge of #132171 - matthiaskrgr:rollup-tp75ge7, r=matthiaskrgr 2024-10-26 06:53:53 +00:00
rustc_next_trait_solver Add support for ~const item bounds 2024-10-24 23:43:31 +00:00
rustc_parse "innermost", "outermost", "leftmost", and "rightmost" don't need hyphens 2024-10-23 02:45:24 -07:00
rustc_parse_format Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_passes Rollup merge of #132249 - workingjubilee:add-rustc-abi, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_pattern_analysis compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_privacy Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
rustc_query_impl Handle rustc_query_impl cases of rustc::potential_query_instability lint 2024-10-03 12:47:08 +03:00
rustc_query_system Introduce Enabled{Lang,Lib}Feature 2024-10-25 10:30:37 +08:00
rustc_resolve expand: Stop using artificial ast::Item for macros loaded from metadata 2024-10-26 22:08:55 +03:00
rustc_sanitizers Rollup merge of #131049 - compiler-errors:more-validation, r=spastorino 2024-10-22 15:28:38 +02:00
rustc_serialize Fix explicit_iter_loop in rustc_serialize 2024-10-16 15:44:16 +02:00
rustc_session compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_smir stable_mir: Directly use types from rustc_abi 2024-10-28 10:13:19 -07:00
rustc_span Auto merge of #131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors 2024-10-27 17:04:12 +00:00
rustc_symbol_mangling compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_target Auto merge of #131900 - mrkajetanp:target-feature-pauth-lr, r=Amanieu 2024-10-27 00:09:49 +00:00
rustc_trait_selection Rollup merge of #132243 - compiler-errors:no-span, r=jieyouxu 2024-10-28 13:36:21 +08:00
rustc_traits Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
rustc_transmute Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_ty_utils Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_type_ir Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
rustc_type_ir_macros do not relate Abi and Safety 2024-10-22 23:13:04 +02:00
stable_mir Rollup merge of #132085 - celinval:update-smir-doc, r=compiler-errors 2024-10-24 23:23:55 -07:00