[llvm] r309646 - [libFuzzer] enable -fsanitize-coverage=pc-table for all tests
Kostya Serebryany via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 1 11:04:23 PDT 2017
r309716 should make the windows bot green.
Redi, Zack, please help me fix this on windows ASAP, this is blocking my
progress (should be simple).
On Tue, Aug 1, 2017 at 10:56 AM, Kostya Serebryany <kcc at google.com> wrote:
> Hold on, I'll revert only the part that actually causes the failure.
>
>
> On Tue, Aug 1, 2017 at 10:46 AM, Vitaly Buka <vitalybuka at google.com>
> wrote:
>
>> I am going revert this change?
>>
>> On Tue, Aug 1, 2017 at 8:16 AM, Kostya Serebryany <kcc at google.com> wrote:
>>
>>> Hi Reid, Zach,
>>>
>>> I've introduced yet another kind of coverage instrumentation, which
>>> doesn't work on windows out of the box.
>>> Could you please help?
>>> This is again something about section naming.
>>>
>>> --kcc
>>>
>>>
>>> On Tue, Aug 1, 2017 at 1:27 AM, Vitaly Buka <vitalybuka at google.com>
>>> wrote:
>>>
>>>> Broken by this patch
>>>> http://lab.llvm.org:8011/builders/sanitizer-windows/builds/14792
>>>>
>>>> On Mon, Jul 31, 2017 at 5:48 PM, Kostya Serebryany via llvm-commits <
>>>> llvm-commits at lists.llvm.org> wrote:
>>>>
>>>>> Author: kcc
>>>>> Date: Mon Jul 31 17:48:44 2017
>>>>> New Revision: 309646
>>>>>
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=309646&view=rev
>>>>> Log:
>>>>> [libFuzzer] enable -fsanitize-coverage=pc-table for all tests
>>>>>
>>>>> Modified:
>>>>> llvm/trunk/lib/Fuzzer/FuzzerTracePC.cpp
>>>>> llvm/trunk/lib/Fuzzer/FuzzerTracePC.h
>>>>> llvm/trunk/lib/Fuzzer/test/CMakeLists.txt
>>>>> llvm/trunk/lib/Fuzzer/test/inline-8bit-counters.test
>>>>>
>>>>> Modified: llvm/trunk/lib/Fuzzer/FuzzerTracePC.cpp
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/Fu
>>>>> zzerTracePC.cpp?rev=309646&r1=309645&r2=309646&view=diff
>>>>> ============================================================
>>>>> ==================
>>>>> --- llvm/trunk/lib/Fuzzer/FuzzerTracePC.cpp (original)
>>>>> +++ llvm/trunk/lib/Fuzzer/FuzzerTracePC.cpp Mon Jul 31 17:48:44 2017
>>>>> @@ -72,7 +72,7 @@ void TracePC::HandlePCsInit(const uint8_
>>>>> if (NumPCTables && ModulePCTable[NumPCTables - 1].Start == B)
>>>>> return;
>>>>> assert(NumPCTables < sizeof(ModulePCTable) /
>>>>> sizeof(ModulePCTable[0]));
>>>>> ModulePCTable[NumPCTables++] = {B, E};
>>>>> - NumPCsInPCTables = E - B;
>>>>> + NumPCsInPCTables += E - B;
>>>>> }
>>>>>
>>>>> void TracePC::HandleInit(uint32_t *Start, uint32_t *Stop) {
>>>>> @@ -95,26 +95,36 @@ void TracePC::HandleInit(uint32_t *Start
>>>>>
>>>>> void TracePC::PrintModuleInfo() {
>>>>> if (NumGuards) {
>>>>> - Printf("INFO: Loaded %zd modules (%zd guards): ", NumModules,
>>>>> NumGuards);
>>>>> + Printf("INFO: Loaded %zd modules (%zd guards): ", NumModules,
>>>>> NumGuards);
>>>>> for (size_t i = 0; i < NumModules; i++)
>>>>> - Printf("[%p, %p), ", Modules[i].Start, Modules[i].Stop);
>>>>> + Printf("%zd [%p, %p), ", Modules[i].Stop - Modules[i].Start,
>>>>> + Modules[i].Start, Modules[i].Stop);
>>>>> Printf("\n");
>>>>> }
>>>>> if (NumModulesWithInline8bitCounters) {
>>>>> - Printf("INFO: Loaded %zd modules with %zd inline 8-bit counters:
>>>>> ",
>>>>> + Printf("INFO: Loaded %zd modules (%zd inline 8-bit counters): ",
>>>>> NumModulesWithInline8bitCounters, NumInline8bitCounters);
>>>>> for (size_t i = 0; i < NumModulesWithInline8bitCounters; i++)
>>>>> - Printf("[%p, %p), ", ModuleCounters[i].Start,
>>>>> ModuleCounters[i].Stop);
>>>>> + Printf("%zd [%p, %p), ", ModuleCounters[i].Stop -
>>>>> ModuleCounters[i].Start,
>>>>> + ModuleCounters[i].Start, ModuleCounters[i].Stop);
>>>>> Printf("\n");
>>>>> }
>>>>> if (NumPCTables) {
>>>>> - Printf("INFO: Loaded %zd PC tables, %zd PCs: ", NumPCTables,
>>>>> + Printf("INFO: Loaded %zd PC tables (%zd PCs): ", NumPCTables,
>>>>> NumPCsInPCTables);
>>>>> for (size_t i = 0; i < NumPCTables; i++) {
>>>>> - Printf("[%p,%p), ", ModulePCTable[i].Start,
>>>>> ModulePCTable[i].Stop,
>>>>> - ModulePCTable[i].Stop - ModulePCTable[i].Start);
>>>>> + Printf("%zd [%p,%p), ", ModulePCTable[i].Stop -
>>>>> ModulePCTable[i].Start,
>>>>> + ModulePCTable[i].Start, ModulePCTable[i].Stop);
>>>>> }
>>>>> Printf("\n");
>>>>> +
>>>>> + if ((NumGuards && NumGuards != NumPCsInPCTables) ||
>>>>> + (NumInline8bitCounters && NumInline8bitCounters !=
>>>>> NumPCsInPCTables)) {
>>>>> + Printf("ERROR: The size of coverage PC tables does not match
>>>>> the"
>>>>> + " number of instrumented PCs. This might be a bug in the
>>>>> compiler,"
>>>>> + " please contact the libFuzzer developers.\n");
>>>>> + _Exit(1);
>>>>> + }
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> Modified: llvm/trunk/lib/Fuzzer/FuzzerTracePC.h
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/Fu
>>>>> zzerTracePC.h?rev=309646&r1=309645&r2=309646&view=diff
>>>>> ============================================================
>>>>> ==================
>>>>> --- llvm/trunk/lib/Fuzzer/FuzzerTracePC.h (original)
>>>>> +++ llvm/trunk/lib/Fuzzer/FuzzerTracePC.h Mon Jul 31 17:48:44 2017
>>>>> @@ -86,7 +86,8 @@ class TracePC {
>>>>>
>>>>> void ResetMaps() {
>>>>> ValueProfileMap.Reset();
>>>>> - memset(Counters(), 0, GetNumPCs());
>>>>> + if (NumModules)
>>>>> + memset(Counters(), 0, GetNumPCs());
>>>>> ClearExtraCounters();
>>>>> ClearInlineCounters();
>>>>> }
>>>>>
>>>>> Modified: llvm/trunk/lib/Fuzzer/test/CMakeLists.txt
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/te
>>>>> st/CMakeLists.txt?rev=309646&r1=309645&r2=309646&view=diff
>>>>> ============================================================
>>>>> ==================
>>>>> --- llvm/trunk/lib/Fuzzer/test/CMakeLists.txt (original)
>>>>> +++ llvm/trunk/lib/Fuzzer/test/CMakeLists.txt Mon Jul 31 17:48:44 2017
>>>>> @@ -15,7 +15,7 @@ foreach (VARNAME ${variables_to_filter})
>>>>> endforeach()
>>>>>
>>>>> # Enable the coverage instrumentation (it is disabled for the Fuzzer
>>>>> lib).
>>>>> -set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE}
>>>>> -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp,trace-div,trace-gep
>>>>> -gline-tables-only")
>>>>> +set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE}
>>>>> -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp,trace-div,trace-gep,pc-table
>>>>> -gline-tables-only")
>>>>>
>>>>> if(MSVC)
>>>>> # For tests use the CRT specified for release build
>>>>>
>>>>> Modified: llvm/trunk/lib/Fuzzer/test/inline-8bit-counters.test
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/te
>>>>> st/inline-8bit-counters.test?rev=309646&r1=309645&r2=309646&view=diff
>>>>> ============================================================
>>>>> ==================
>>>>> --- llvm/trunk/lib/Fuzzer/test/inline-8bit-counters.test (original)
>>>>> +++ llvm/trunk/lib/Fuzzer/test/inline-8bit-counters.test Mon Jul 31
>>>>> 17:48:44 2017
>>>>> @@ -1,4 +1,4 @@
>>>>> REQUIRES: linux
>>>>> -CHECK: INFO: Loaded 1 modules with {{.*}} inline 8-bit counters
>>>>> +CHECK: INFO: Loaded 1 modules ({{.*}} inline 8-bit counters)
>>>>> CHECK: BINGO
>>>>> RUN: not LLVMFuzzer-SimpleTest-Inline8bitCounters -runs=1000000
>>>>> -seed=1 2>&1 | FileCheck %s
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> llvm-commits mailing list
>>>>> llvm-commits at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>>
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170801/3581a843/attachment.html>
More information about the llvm-commits
mailing list