5873ebeef3
This ensures that the error is printed even for unused variables, as well as unifying the handling between the LLVM and GCC backends. This also fixes unusual behavior around exported Rust-defined variables with linkage attributes. With the previous behavior, it appears to be impossible to define such a variable such that it can actually be imported and used by another crate. This is because on the importing side, the variable is required to be a pointer, but on the exporting side, the type checker rejects static variables of pointer type because they do not implement `Sync`. Even if it were possible to import such a type, it appears that code generation on the importing side would add an unexpected additional level of pointer indirection, which would break type safety. This highlighted that the semantics of linkage on Rust-defined variables is different to linkage on foreign items. As such, we now model the difference with two different codegen attributes: linkage for Rust-defined variables, and import_linkage for foreign items. This change gives semantics to the test src/test/ui/linkage-attr/auxiliary/def_illtyped_external.rs which was previously expected to fail to compile. Therefore, convert it into a test that is expected to successfully compile. The update to the GCC backend is speculative and untested.
63 lines
3.6 KiB
Plaintext
63 lines
3.6 KiB
Plaintext
codegen_gcc_unwinding_inline_asm =
|
|
GCC backend does not support unwinding from inline asm
|
|
|
|
codegen_gcc_lto_not_supported =
|
|
LTO is not supported. You may get a linker error.
|
|
|
|
codegen_gcc_invalid_monomorphization_basic_integer =
|
|
invalid monomorphization of `{$name}` intrinsic: expected basic integer type, found `{$ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_invalid_float_vector =
|
|
invalid monomorphization of `{$name}` intrinsic: unsupported element type `{$elem_ty}` of floating-point vector `{$vec_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_not_float =
|
|
invalid monomorphization of `{$name}` intrinsic: `{$ty}` is not a floating-point type
|
|
|
|
codegen_gcc_invalid_monomorphization_unrecognized =
|
|
invalid monomorphization of `{$name}` intrinsic: unrecognized intrinsic `{$name}`
|
|
|
|
codegen_gcc_invalid_monomorphization_expected_signed_unsigned =
|
|
invalid monomorphization of `{$name}` intrinsic: expected element type `{$elem_ty}` of vector type `{$vec_ty}` to be a signed or unsigned integer type
|
|
|
|
codegen_gcc_invalid_monomorphization_unsupported_element =
|
|
invalid monomorphization of `{$name}` intrinsic: unsupported {$name} from `{$in_ty}` with element `{$elem_ty}` to `{$ret_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_invalid_bitmask =
|
|
invalid monomorphization of `{$name}` intrinsic: invalid bitmask `{ty}`, expected `u{$expected_int_bits}` or `[u8; {$expected_bytes}]`
|
|
|
|
codegen_gcc_invalid_monomorphization_simd_shuffle =
|
|
invalid monomorphization of `{$name}` intrinsic: simd_shuffle index must be an array of `u32`, got `{$ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_expected_simd =
|
|
invalid monomorphization of `{$name}` intrinsic: expected SIMD {$expected_ty} type, found non-SIMD `{$found_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_mask_type =
|
|
invalid monomorphization of `{$name}` intrinsic: mask element type is `{$ty}`, expected `i_`
|
|
|
|
codegen_gcc_invalid_monomorphization_return_length =
|
|
invalid monomorphization of `{$name}` intrinsic: expected return type of length {$in_len}, found `{$ret_ty}` with length {$out_len}
|
|
|
|
codegen_gcc_invalid_monomorphization_return_length_input_type =
|
|
invalid monomorphization of `{$name}` intrinsic: expected return type with length {$in_len} (same as input type `{$in_ty}`), found `{$ret_ty}` with length {$out_len}
|
|
|
|
codegen_gcc_invalid_monomorphization_return_element =
|
|
invalid monomorphization of `{$name}` intrinsic: expected return element type `{$in_elem}` (element of input `{$in_ty}`), found `{$ret_ty}` with element type `{$out_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_return_type =
|
|
invalid monomorphization of `{$name}` intrinsic: expected return type `{$in_elem}` (element of input `{$in_ty}`), found `{$ret_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_inserted_type =
|
|
invalid monomorphization of `{$name}` intrinsic: expected inserted type `{$in_elem}` (element of input `{$in_ty}`), found `{$out_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_return_integer_type =
|
|
invalid monomorphization of `{$name}` intrinsic: expected return type with integer elements, found `{$ret_ty}` with non-integer `{$out_ty}`
|
|
|
|
codegen_gcc_invalid_monomorphization_mismatched_lengths =
|
|
invalid monomorphization of `{$name}` intrinsic: mismatched lengths: mask length `{$m_len}` != other vector length `{$v_len}`
|
|
|
|
codegen_gcc_invalid_monomorphization_unsupported_cast =
|
|
invalid monomorphization of `{$name}` intrinsic: unsupported cast from `{$in_ty}` with element `{$in_elem}` to `{$ret_ty}` with element `{$out_elem}`
|
|
|
|
codegen_gcc_invalid_monomorphization_unsupported_operation =
|
|
invalid monomorphization of `{$name}` intrinsic: unsupported operation on `{$in_ty}` with element `{$in_elem}`
|