views:

1257

answers:

3

Hi,

my project includes a simple C file with a header. Like this:

#ifndef __IMAGE_ARRAY_3D
#define __IMAGE_ARRAY_3D

typedef struct ImageArray3D {
    double *data;      // The image data
    LargeElement *largestElements;  // c * nLargestElements
    int c, w, h, nLargestElements;
} tImageArray3D;     // Error points to here

...

#endif

When I run XCode's static analyzer, I get the following error:

Analyzer skipped this file due to parse errors

redefinition of 'ImageArray3D' as different kind of symbol

What is the cause of this?

+1  A: 

Sounds like your project, or the OS X libraries, already define and use ImageArray3D. Just rename it and it will probably work.

gbrandt
Thank you, but my project didn't define it.
Norbert
A: 

I found the cause of it: If you select XCode's Show issues only, then you won't see the analyzer's errors in a file! Only if you select Show all option, you will see that the analyzer has had problems checking your project.

Norbert
The solution is not to sweep the warning(s) under the carpet.
Johan Kool
+4  A: 

Here is a solution for the problem: Solution!

The recommended solution is to add the following to Other C Flags in your project's build settings: -D__IPHONE_OS_VERSION_MIN_REQUIRED=040100 where you replace 040100 with your deployment target version (030000 for 3.0, for example).

dkk