Merge pull request #324 from GuillaumeGomez/no-alias-optimization

Only apply NoAlias attribute if optimization is enabled
This commit is contained in:
antoyo 2023-08-31 17:55:41 -04:00 committed by GitHub
commit b6ccb55f56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,6 +3,7 @@ use rustc_codegen_ssa::traits::{AbiBuilderMethods, BaseTypeMethods};
use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::fx::FxHashSet;
use rustc_middle::bug; use rustc_middle::bug;
use rustc_middle::ty::Ty; use rustc_middle::ty::Ty;
use rustc_session::config;
use rustc_target::abi::call::{ArgAttributes, CastTarget, FnAbi, PassMode, Reg, RegKind}; use rustc_target::abi::call::{ArgAttributes, CastTarget, FnAbi, PassMode, Reg, RegKind};
use crate::builder::Builder; use crate::builder::Builder;
@ -122,7 +123,8 @@ impl<'gcc, 'tcx> FnAbiGccExt<'gcc, 'tcx> for FnAbi<'tcx, Ty<'tcx>> {
#[cfg(feature = "master")] #[cfg(feature = "master")]
let apply_attrs = |ty: Type<'gcc>, attrs: &ArgAttributes| { let apply_attrs = |ty: Type<'gcc>, attrs: &ArgAttributes| {
if attrs.regular.contains(rustc_target::abi::call::ArgAttribute::NoAlias) if cx.sess().opts.optimize != config::OptLevel::No
&& attrs.regular.contains(rustc_target::abi::call::ArgAttribute::NoAlias)
{ {
ty.make_restrict() ty.make_restrict()
} else { } else {