Displaying 4 results from an estimated 4 matches for "cvsvp".
Did you mean:
cvsup
2020 Feb 18
8
The semantics of nonnull attribute
...I found that there was a similar discussion about this issue in the past as
well, but seems it is not settled yet.
What should the semantics of nonnull be?
I listed a few optimizations that are relevant with this issue.
1. Propagating nonnull attribute to callee's arg (
https://godbolt.org/z/-cVsVP )
g(i8* ptr) {
f(nonnull ptr);
}
=>
g(i8* nonnull ptr) {
f(nonnull ptr);
}
This is correct if f(nonnull null) is UB. If ptr == null, f(nonnull null)
should have raised UB, so ptr shouldn't be null.
However, this transformation is incorrect if f(nonnull null) is equivalent
to f(poison).
If...
2020 Feb 18
2
The semantics of nonnull attribute
...scussion about this issue in the past as
> well, but seems it is not settled yet.
> What should the semantics of nonnull be?
> I listed a few optimizations that are relevant with this issue.
>
>
> 1. Propagating nonnull attribute to callee's arg (
> https://godbolt.org/z/-cVsVP )
>
> g(i8* ptr) {
> f(nonnull ptr);
> }
> =>
> g(i8* nonnull ptr) {
> f(nonnull ptr);
> }
>
> This is correct if f(nonnull null) is UB. If ptr == null, f(nonnull null)
> should have raised UB, so ptr shouldn't be null.
> However, this transformation is...
2020 Feb 18
3
The semantics of nonnull attribute
...; > past as well, but seems it is not settled yet.
> > What should the semantics of nonnull be?
> > I listed a few optimizations that are relevant with this issue.
> >
> >
> > 1. Propagating nonnull attribute to callee's arg (
> > https://godbolt.org/z/-cVsVP )
> >
> > g(i8* ptr) {
> > f(nonnull ptr);
> > }
> > =>
> > g(i8* nonnull ptr) {
> > f(nonnull ptr);
> > }
> >
> > This is correct if f(nonnull null) is UB. If ptr == null, f(nonnull
> > null) should have raised UB, so ptr shou...
2020 Feb 18
8
The semantics of nonnull attribute
...ems it is not settled yet.
> > > What should the semantics of nonnull be?
> > > I listed a few optimizations that are relevant with this issue.
> > >
> > >
> > > 1. Propagating nonnull attribute to callee's arg (
> > > https://godbolt.org/z/-cVsVP )
> > >
> > > g(i8* ptr) {
> > > f(nonnull ptr);
> > > }
> > > =>
> > > g(i8* nonnull ptr) {
> > > f(nonnull ptr);
> > > }
> > >
> > > This is correct if f(nonnull null) is UB. If ptr == null, f(nonnull
>...