llvm-project/clang/examples/clang-interpreter
Nico Weber 1865df4996 s/LLVM_ON_WIN32/_WIN32/, clang
LLVM_ON_WIN32 is set exactly with MSVC and MinGW (but not Cygwin) in
HandleLLVMOptions.cmake, which is where _WIN32 defined too.  Just use the
default macro instead of a reinvented one.

See thread "Replacing LLVM_ON_WIN32 with just _WIN32" on llvm-dev and cfe-dev.
No intended behavior change.

llvm-svn: 331069
2018-04-27 19:11:14 +00:00
..
CMakeLists.txt clang-interpreter example cmake fix 2018-03-21 12:05:19 +00:00
Invoke.cpp Expand clang-interpreter with example of throwing in and from the JIT for Windows64. 2018-03-14 16:04:45 +00:00
Invoke.h Expand clang-interpreter with example of throwing in and from the JIT for Windows64. 2018-03-14 16:04:45 +00:00
Manager.cpp Expand clang-interpreter with example of throwing in and from the JIT for Windows64. 2018-03-14 16:04:45 +00:00
Manager.h s/LLVM_ON_WIN32/_WIN32/, clang 2018-04-27 19:11:14 +00:00
README.txt Expand clang-interpreter with example of throwing in and from the JIT for Windows64. 2018-03-14 16:04:45 +00:00
Test.cxx Expand clang-interpreter with example of throwing in and from the JIT for Windows64. 2018-03-14 16:04:45 +00:00
main.cpp Expand clang-interpreter with example of throwing in and from the JIT for Windows64. 2018-03-14 16:04:45 +00:00

README.txt

This is an example of Clang based interpreter, for executing standalone C/C++
programs.

It demonstrates the following features:
 1. Parsing standard compiler command line arguments using the Driver library.

 2. Constructing a Clang compiler instance, using the appropriate arguments
    derived in step #1.

 3. Invoking the Clang compiler to lex, parse, syntax check, and then generate
    LLVM code.

 4. Use the LLVM JIT functionality to execute the final module.

 5. Intercepting a Win64 library call to allow throwing and catching exceptions
    in and from the JIT.

The implementation has many limitations and is not designed to be a full fledged
interpreter. It is designed to demonstrate a simple but functional use of the
Clang compiler libraries.