[PATCH] D127306: [analyzer] Treat system globals as mutable if they are not const

Balázs Benics via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 14 10:32:34 PDT 2022


steakhal marked 3 inline comments as done.
steakhal added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Core/MemRegion.cpp:978
+    assert(!Ty.isNull());
+    if (Ty.isConstQualified() && Ty->isArithmeticType()) {
       // TODO: We could walk the complex types here and see if everything is
----------------
xazax.hun wrote:
> steakhal wrote:
> > xazax.hun wrote:
> > > Why do we need this extra condition? I see that this was the original behavior, just wondering if we actually know. I think there are more types than arithmetic that can be stored in the read only memory.
> > Well, seems reasonable. Do you think I should remove it here or in a separate patch?
> Let's keep it separate, so it can be reverted individually. Just in case we find out the reason the hard way :)
D127763.


================
Comment at: clang/lib/StaticAnalyzer/Core/MemRegion.cpp:979-980
+    if (Ty.isConstQualified() && Ty->isArithmeticType()) {
       // TODO: We could walk the complex types here and see if everything is
       // constified.
+      sReg = getGlobalsRegion(MemRegion::GlobalImmutableSpaceRegionKind);
----------------
steakhal wrote:
> martong wrote:
> > Is this comment still meaningful? I don't think so because if the type is const, then it does not matter what sub-types it has.
> Makes sense. However, I'm not sure. Is it the case @xazax.hun?
D127763


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D127306/new/

https://reviews.llvm.org/D127306



More information about the cfe-commits mailing list