[Diffusion] rL290025: [libclang] Remove the 'extern "C"' blocks from the implementation files.

NAKAMURA Takumi via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 19 17:00:08 PST 2016


chapuni added subscribers: cfe-commits, chapuni.
chapuni added a comment.

See r290113.

I saw linker error on mingw dll build.

  Cannot export clang_findIncludesInFileWithBlock: symbol not defined
  Cannot export clang_findReferencesInFileWithBlock: symbol not defined
  Cannot export clang_visitChildrenWithBlock: symbol not defined

They are excluded from header files in clang/include/clang-c along has_feature(blocks).
mingw32-ld doesn't ignore nonexistent symbols but reports errors.

I suggest;

1. Define dummy bodies (or define dummy decls in headers)
2. Enhance add_llvm_symbol_exports to be capable of optional entries.


/cfe/trunk/tools/libclang/CIndexHigh.cpp:410 They are activated along has_feature(blocks).
/cfe/trunk/tools/libclang/CIndex.cpp:4165 It is activated when not has_feature(blocks).

https://reviews.llvm.org/rL290025





More information about the cfe-commits mailing list