From: Kostya Serebryany Date: Fri, 6 May 2016 23:51:28 +0000 (+0000) Subject: [libFuzzer] modify the docs for startup/init X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2372d8bb4575452b97ecf9450e3f9a0f2274ccaa;p=llvm [libFuzzer] modify the docs for startup/init git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268824 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LibFuzzer.rst b/docs/LibFuzzer.rst index 4d6a0847bea..4047d104c84 100644 --- a/docs/LibFuzzer.rst +++ b/docs/LibFuzzer.rst @@ -624,14 +624,18 @@ Startup initialization ---------------------- If the library being tested needs to be initialized, there are several options. -The simplest way is to have a statically initialized global object: +The simplest way is to have a statically initialized global object inside +`LLVMFuzzerTestOneInput` (or in global scope if that works for you): .. code-block:: c++ - static bool Initialized = DoInitialization(); + extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + static bool Initialized = DoInitialization(); + ... Alternatively, you may define an optional init function and it will receive -the program arguments that you can read and modify: +the program arguments that you can read and modify. Do this **only** if you +realy need to access ``argv``/``argc``. .. code-block:: c++