On Sun, 19 Aug 2012 15:02:22 -0700, "Ronald S. Bultje" <[email protected]> 
wrote:
> Hi,
> 
> On Sat, Aug 18, 2012 at 11:09 PM, Anton Khirnov <[email protected]> wrote:
> >
> > On Sat, 18 Aug 2012 22:32:15 -0700, "Ronald S. Bultje" <[email protected]> 
> > wrote:
> >> From: "Ronald S. Bultje" <[email protected]>
> >>
> >> ---
> >>  libavcodec/aacdec.c | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
> >> index 1c59ec5..bf99cc3 100644
> >> --- a/libavcodec/aacdec.c
> >> +++ b/libavcodec/aacdec.c
> >> @@ -1257,9 +1257,10 @@ static inline float *VMUL4S(float *dst, const float 
> >> *v, unsigned idx,
> >>                              unsigned sign, const float *scale)
> >>  {
> >>      unsigned nz = idx >> 12;
> >> -    union av_intfloat32 s = { .f = *scale };
> >> +    union av_intfloat32 s;
> >>      union av_intfloat32 t;
> >>
> >> +    s.f = *scale;
> >>      t.i = s.i ^ (sign & 1U<<31);
> >>      *dst++ = v[idx    & 3] * t.f;
> >>
> >
> > Please, stop those euphemisms. I'm sure the actual reason for this patch is 
> > not
> > simplifying the code, but making it parsable by msvc. In that case, just 
> > say so.
> > Obscuring the purpose is not helping anyone.
> >
> > Also, I wonder why is this needed. Your converter can do this replacement 
> > for
> > structs, can't it trivially do the same for unions?
> 
> OK, so apparently no flames, so fine, I propose I amend the commit msg
> saying that "this aids in compilation with compilers that have
> limitations, such as MSVC." Is that better?
> 

Not really. With this patch you're implicitly banning designated initializers in
unions. We didn't discuss this and didn't agree to this.

> I'm sure there's ways to write some sort of a converter to do some
> kind of source code conversion to sort of hack around this and make it
> sort-of work in some cases but not others (think static const union
> assignments). I welcome patches that assist in accomplishing this
> goal, and encourage you to send one, or contribute ideas on how to get
> there.
> 

As I said above in this thread, for non-static initialization you do essentially
the same replacement that the converter already does for compound literals. So
this should be doable very easily in the converter. Am I wrong?

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to