Replacing with __attribute__((used)) is fine with me.

I think it is still useful, otherwise LLVM's DCE will remove it before JS even sees it. 

Sent from my iPhone

On Apr 11, 2013, at 9:30 AM, juj <notifications@github.com> wrote:

> In system/include/emscripten/emscripten.h:
> 
> > @@ -24,7 +24,7 @@
> >   *                 with closure, asm.js, etc. For example
> >   *                   -s EXPORTED_FUNCTIONS=["_main", "myfunc"]
> >   */
> > -/* #define EMSCRIPTEN_KEEPALIVE __attribute__((used)) */
> > +#define EMSCRIPTEN_KEEPALIVE __attribute__((used))
> 5/6 places where that define was used in embind have since been removed, but in bind.cpp it's still in place in the line:
> 
> const char* EMSCRIPTEN_KEEPALIVE __getTypeName(const std::type_info* ti)
> 
> Should I remove the EMSCRIPTEN_KEEPALIVE define again, and replace that line by manually expanding the attribute((used)) into __getTypeName? Or do you know if that attribute has any practical/required effect anymore?
> 
> —
> Reply to this email directly or view it on GitHub.