Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Indexer problems at Mars.2 (Eclipse CDT 8.8.1)

Hi Joseph,

Please file a bug report with this information, so it doesn't get lost.

Thanks!

Nate

________________________________
> From: Joseph.Henry@xxxxxxx 
> To: cdt-dev@xxxxxxxxxxx 
> Date: Thu, 2 Jun 2016 18:01:16 +0000 
> Subject: [cdt-dev] Indexer problems at Mars.2 (Eclipse CDT 8.8.1) 
>  
>  
> I am working on updating My companies CDT integration from Luna SR2 to  
> Mars.2 (equivalent versions of CDT). 
>  
>  
>  
> The only problem that I have ran into so far is that with Mars.2 I get  
> some Indexer problems that I did not get in Luna. 
>  
>  
>  
> Below is an example of some code that can produce 1 of the problems I  
> am seeing. 
>  
>  
>  
> Basically the code below creates a red squiggly in 2 areas that it did  
> not in Luna. 
>  
> The problem lines are: 
>  
> 58:  #define STR(idx) MY_STRUCT(idx).str 
>  
> str has a red squiggly under it with error message (Field ‘STR(0)’  
> could not be resolved) 
>  
> 64: char* str2 = MY_STRUCT(0).str; 
>  
> str again has a red squiggly under it with error message (Field ‘str’  
> could not be resolved) 
>  
>  
>  
> This is mostly an annoyance, but it is a pretty big one considering now  
> with Mars.2 almost every file that we work on has some sort of “Error”  
> in it that did not appear before. 
>  
>  
>  
> If this has already been reported, could you send me to the bug report. 
>  
>  
>  
> If you have any clue where I could start looking for the cause of this  
> bug, that would be helpful. I have fixed a few bug in the indexer in  
> the past, so I am somewhat familiar with how it works, but could use a  
> bit of help getting started. 
>  
>  
>  
> Thanks, 
>  
> Joseph Henry. 
>  
>  
>  
>  
>  
> /* 
>  
> * IndexTest.c 
>  
> * 
>  
> *  Created on: Jun 2, 2016 
>  
> *      Author: johenr 
>  
> */ 
>  
>  
>  
> #include "stdio.h" 
>  
>  
>  
> /* 
>  
> * ARRAY_SIZE macro 
>  
> * 
>  
> * Returns size of a constant array 
>  
> */ 
>  
> #ifndef ARRAY_SIZE 
>  
> #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) 
>  
> #endif 
>  
>  
>  
> /* 
>  
> * ELEM_AT macro 
>  
> * 
>  
> * returns the element at i for array a and returns v if out of bounds 
>  
> */ 
>  
> #ifndef ELEM_AT 
>  
> #define ELEM_AT(a, i, v) ((unsigned int) (i) < ARRAY_SIZE(a) ? (a)[(i)]  
> : (v)) 
>  
> #endif 
>  
>  
>  
> typedef struct MyStruct 
>  
> { 
>  
>                  char* str; 
>  
>                  int   id; 
>  
> }MyStruct; 
>  
>  
>  
> #define MY_STRUCTS \ 
>  
>                  ENTRY(str1, 1) \ 
>  
>                  ENTRY(str2, 2) \ 
>  
>                  ENTRY(str3, 3) 
>  
>  
>  
> static const struct MyStruct globs[] = 
>  
> { 
>  
> #define ENTRY(val,id) \ 
>  
>                                  {             \ 
>  
>                          #val,     \ 
>  
>                                                  id        \ 
>  
>                                  },            \ 
>  
>  
>  
>                                  MY_STRUCTS 
>  
> #undef ENTRY 
>  
> }; 
>  
>  
>  
> static const struct MyStruct unknown = 
>  
> { 
>  
>                  "Unknown", 
>  
>                  -1 
>  
> }; 
>  
>  
>  
> #define MY_STRUCT(idx) ELEM_AT(globs,idx,unknown) 
>  
> #define STR(idx) MY_STRUCT(idx).str 
>  
>  
>  
> int main() 
>  
> { 
>  
>                  char* str = STR(0); 
>  
>                  char* str2 = MY_STRUCT(0).str; 
>  
>                  printf("%s",str); 
>  
>                  return 0; 
>  
> } 
>  
> _______________________________________________ cdt-dev mailing list  
> cdt-dev@xxxxxxxxxxx To change your delivery options, retrieve your  
> password, or unsubscribe from this list, visit  
> https://dev.eclipse.org/mailman/listinfo/cdt-dev 
 		 	   		  

Back to the top