Merge pull request #324 from GuillaumeGomez/no-alias-optimization
Only apply NoAlias attribute if optimization is enabled
This commit is contained in:
commit
b6ccb55f56
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user