Re: [CEDET-devel] Problems with macros expanding to function definitions
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2010-07-18 12:34:14
|
On 07/15/2010 01:00 PM, Joe Rumsey wrote: > > On Thu, Jul 15, 2010 at 5:03 AM, > <ced...@li... > <mailto:ced...@li...>> wrote: > > I am working on a C++ project which has a way of defining method > functions > in certain classes using macros for the function declaration. CEDET > seems > unable to entirely figure out the class context inside the bodies of > these > functions. I have included a test case that reproduces the problem > below, > the actual usage is much more complex, and I wasn't sure it wasn't just > having problems finding the proper symbol definitions until I wrote this > self-contained test case. In the sample included, inside of > HANDLER(Test), > CEDET will not properly tag m_testVar as a member of MyClass, though > it will > figure out that OtherFunction() is a method of MyClass. I get the same > result if HANDLER() is defined as void MyClass::x##Handler(), so it > seems > it's not (just) the double macro expansion causing trouble. > > > I just tested this again with CEDET from CVS, and it works fine for > both my test case and the real project I'm working with. So, problem > solved, I'll happily use the CVS version! I had had the same problem > previously with 1.0pre7 and emacs 23.1, but I hadn't thought to try it > from CVS until now. Thanks for bringing us this package, keep up the > good work! I'm glad you found the fix in CVS. I wasn't looking forward to debugging the C preprocessor in Semantic again. ;) Eric |