Endre =?utf-8?q?Fülöp?= <endre.fu...@sigmatechnology.com> Message-ID: In-Reply-To: <llvm.org/llvm/llvm-project/pull/150...@github.com>
================ @@ -0,0 +1,166 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.core.StoreToImmutable -verify %s + +// Test basic functionality of StoreToImmutable checker +// This tests direct writes to immutable regions without function modeling + +// Direct write to a const global variable +const int global_const = 42; // expected-note {{Memory region is in immutable space}} + +void test_direct_write_to_const_global() { + // This should trigger a warning about writing to immutable memory + *(int*)&global_const = 100; // expected-warning {{Writing to immutable memory is undefined behavior}} + // expected-note@-1 {{Writing to immutable memory is undefined behavior. This memory region is marked as immutable and should not be modified}} ---------------- steakhal wrote: Ah I see. It may have something to do with the raw use of the addNote API, which is not usually done. We usually use BugReport visitors for putting down notes and probably their behavior is different. I'm not entirely convinced that using notes in the default analyzer output consumer is expected. Do you know any other checker that emits notes in a similar fashion - in other words, even without `-analyzer-output=`. I tried to grep for one case when we emit notes from a static analyzer checker and could not find one. Despite this concern, I think it's fine to have notes without enabling the text consumer. If we have complaints about this we will revisit this decision. https://github.com/llvm/llvm-project/pull/150417 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits