I am using wxwidgets toolkit.
when I use #elif defined(...), semantic doesn't works

my example codes
=======================================================
#define __WXGTK20__

#if defined(__WXUNIVERSAL__)
    #include <wx/univ/stattext.h>
#elif defined(__WXMSW__)
    #include <wx/msw/stattext.h>
#elif defined(__WXGTK20__)
    #include <wx/gtk/stattext.h>
#elif defined(__WXMAC__)
    #include <wx/mac/stattext.h>
#endif

int main(int argc, char *argv[])
{
wxStaticText a;
a. // doesn't works
return 0;
}
-------------------------------------------------------
M-x bovinate

(("__WXGTK20__" variable
  (:constant-flag t)
  nil #<overlay from 9 to 20 in main.cc>)
 ("main" function
  (:arguments
   (("argc" variable
     (:type "int")
     (reparse-symbol arg-sub-list)
     #<overlay from 278 to 287 in main.cc>)
    ("argv" variable
     (:pointer 1 :dereference 1 :type "char")
     (reparse-symbol arg-sub-list)
     #<overlay from 288 to 301 in main.cc>))
   :type "int")
  nil #<overlay from 269 to 337 in main.cc>))
=======================================================
=======================================================
#define __WXGTK20__

#if defined(__WXGTK20__)
    #include <wx/gtk/stattext.h>
#endif

int main(int argc, char *argv[])
{
wxStaticText b;
b.GetLabel(); //works
return 0;
}

-------------------------------------------------------
M-x bovinate

(("__WXGTK20__" variable
  (:constant-flag t)
  nil #<overlay from 9 to 20 in main.cc>)
 ("wx/gtk/stattext.h" include
  (:system-flag t)
  nil #<overlay from 47 to 79 in main.cc>)
 ("main" function
  (:arguments
   (("argc" variable
     (:type "int")
     (reparse-symbol arg-sub-list)
     #<overlay from 97 to 106 in main.cc>)
    ("argv" variable
     (:pointer 1 :dereference 1 :type "char")
     (reparse-symbol arg-sub-list)
     #<overlay from 107 to 120 in main.cc>))
   :type "int")
  nil #<overlay from 88 to 157 in main.cc>))
=======================================================