VLC 2.1.0

Warner Losh imp at bsdimp.com
Tue Oct 22 19:09:07 UTC 2013


On Oct 22, 2013, at 9:47 AM, Tijl Coosemans wrote:

> On Tue, 22 Oct 2013 12:30:38 -0200 William Grzybowski wrote:
>> On Tue, Oct 22, 2013 at 11:25 AM, Tijl Coosemans <tijl at coosemans.org> wrote:
>>> On Tue, 22 Oct 2013 10:55:28 -0200 William Grzybowski wrote:
>>>> I am trying to update vlc to 2.1.0, its the final step to get rid of
>>>> ffmpeg1 as well.
>>>> I was wondering if any c++ guru out there have any clues on how to fix this:
>>>> 
>>>> http://pastebin.ca/2469885
>>>> 
>>>> http://people.freebsd.org/~wg/vlc2.1.0.txt
>>> 
>>> I think the problem is that clang doesn't expect } after a label.
>>> So try adding a ; or (void)0; between the label and vlc_cleanup_run().
>> 
>> That works, thank you!
> 
> I suspect that clang is correct to complain about this and if so we
> might want to add (void)0; to the definition of pthread_cleanup_pop
> in /usr/include/pthread.h.  Let's see what -standards has to say
> about this.
> 
> Summarised: the idiom that VLC uses is this:
> 
> pthread_cleanup_push(...);
> ...
> if (error) goto cleanup;
> ...
> cleanup:
> pthread_cleanup_pop(...);
> 
> Because the definition of the pthread_cleanup_pop macro starts with }
> clang complains.

Any statement will do there... Clang is correct in complaining because a label in C labels the statement not the location.
(void) 0; is as good or bad as any...

Warner


More information about the freebsd-standards mailing list