[cfe-dev] Compiling FFmpeg
Daniel Dunbar
daniel at zuster.org
Fri Dec 5 08:26:43 PST 2008
On Fri, Dec 5, 2008 at 3:37 AM, John Kelley <jekelley at apple.com> wrote:
> As mentioned in my last mail, clang has trouble compiling files that
> initialize struct members at declaration . One thing I forgot to
> mention is that clang still produces an object file even after the
> error. This allows make to continue as if everything is fine if it is
> run a second time.
This is a bug! I cannot reproduce however:
--
ddunbar at ozzy:tmp$ cat t.c
int g0[2] = { [1] = 1 };
ddunbar at ozzy:tmp$ ccc -c t.c
t.c:1:13: error: cannot codegen this initializer list with designators yet
int g0[2] = { [1] = 1 };
^~~~~~~~~~~
1 diagnostic generated.
ddunbar at ozzy:tmp$ ls -l t.o
ls: t.o: No such file or directory
--
If you can reproduce please file a bug at http://llvm.org/bugs
- Daniel
> - John
>
> On Dec 5, 2008, at 3:21 AM, John Kelley wrote:
>
>> To familiarize myself with clang I decided to try to compile FFmpeg as
>> I am familiar with the project and the developers first guess when
>> something goes wrong is "gcc is probably doing something stupid
>> again".
>>
>> This might seem like a lot to start off with and I'd tend to agree but
>> less went wrong (so far) than I expected. The main issue thus far is
>> that clang has trouble initializing structures. Below may not be the
>> cleanest code but it was the simplest that I could find that produces
>> an error:
>>
>> (from ffmpeg/libavutil/crc.c)
>>
>> typedef enum {
>> AV_CRC_8_ATM,
>> AV_CRC_16_ANSI,
>> AV_CRC_16_CCITT,
>> AV_CRC_32_IEEE,
>> AV_CRC_32_IEEE_LE, /*< reversed bitorder version of
>> AV_CRC_32_IEEE */
>> AV_CRC_MAX, /*< not part of public API! don't use outside
>> lavu */
>> }AVCRCId;
>>
>> static struct {
>> uint8_t le;
>> uint8_t bits;
>> uint32_t poly;
>> } av_crc_table_params[AV_CRC_MAX] = {
>> [AV_CRC_8_ATM] = { 0, 8, 0x07 },
>> [AV_CRC_16_ANSI] = { 0, 16, 0x8005 },
>> [AV_CRC_16_CCITT] = { 0, 16, 0x1021 },
>> [AV_CRC_32_IEEE] = { 0, 32, 0x04C11DB7 },
>> [AV_CRC_32_IEEE_LE] = { 1, 32, 0xEDB88320 },
>> };
>>
>> This produces the following error:
>> crc.c:31:37: error: cannot codegen this initializer list with
>> designators yet
>> } av_crc_table_params[AV_CRC_MAX] = {
>> ^
>>
>> I have no problem pitching in to fix this but wanted to make sure that
>> no one else is currently working on it and to ask where I should look
>> to implement this.
>>
>> Also I was planning on taking a shot at the File Manager Speedup
>> project listed in NOTES.txt unless there are any objections.
>>
>> Cheers,
>> John Kelley
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
More information about the cfe-dev
mailing list