Preprocessor Support von Mangling / Demangling of C++ Identifiers - Any Ideas?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

In my project, I have many interactions between C++, C and assembler
code, symbol alias definitions in linker scripts etc.

The problem is that I very often have to refer to symbols emitted for
C++ entities from outside C++ source files. This means that the mangled
representation of C++ identifiers has to be used, which  is quite painful:

; irq.S
__ciao_irq4:
	; invoke hw::irq::ASC1_TBUF::HWHandler()
	call _ZN2hw3irq9ASC1_TBUF9HWHandlerEv
	rfe

I am looking for a preprocessor that provides means to mangle/demangle
C++ identifiers by some "magic macros":

; irq.S
__ciao_irq4:
	; invoke hw::irq::ASC1_TBUF::HWHandler()
	call MANGLE("hw::irq::ASC1_TBUF::HWHandler()")
	rfe

Here, the preprocessor should replace MANGLE("<C++ identifier>")  by
<mangled representation of C++ identifer>.

In the ideal case, this would be integrated into a real CPP. Well, I am
dreaming. But maybe anybody knows of any kind of preprocessor that
provides this kind of functionality?

(Yes, I am aware of c++filt, which however works only in one direction
(mangled->demangled) and does not provide any means to explicitly
destinct elements it should process from those it shouldn't)

Thanks a lot!

Daniel

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux