Skip to content
Snippets Groups Projects
  • Ted Kremenek's avatar
    892697dd
    Start migration of static analyzer to using the · 892697dd
    Ted Kremenek authored
    implicit lvalue-to-rvalue casts that John McCall
    recently introduced.  This causes a whole bunch
    of logic in the analyzer for handling lvalues
    to vanish.  It does, however, raise a few issues
    in the analyzer w.r.t to modeling various constructs
    (e.g., field accesses to compound literals).
    
    The .c/.m analysis test cases that fail are
    due to a missing lvalue-to-rvalue cast that
    will get introduced into the AST.  The .cpp
    failures were more than I could investigate in
    one go, and the patch was already getting huge.
    I have XFAILED some of these tests, and they
    should obviously be further investigated.
    
    Some highlights of this patch include:
    
    - CFG no longer requires an lvalue bit for
      CFGElements
    - StackFrameContext doesn't need an 'asLValue'
      flag
    - The "VisitLValue" path from GRExprEngine has
      been eliminated.
    
    Besides the test case failures (XFAILed), there
    are surely other bugs that are fallout from
    this change.
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121960 91177308-0d34-0410-b5e6-96231b3b80d8
    892697dd
    History
    Start migration of static analyzer to using the
    Ted Kremenek authored
    implicit lvalue-to-rvalue casts that John McCall
    recently introduced.  This causes a whole bunch
    of logic in the analyzer for handling lvalues
    to vanish.  It does, however, raise a few issues
    in the analyzer w.r.t to modeling various constructs
    (e.g., field accesses to compound literals).
    
    The .c/.m analysis test cases that fail are
    due to a missing lvalue-to-rvalue cast that
    will get introduced into the AST.  The .cpp
    failures were more than I could investigate in
    one go, and the patch was already getting huge.
    I have XFAILED some of these tests, and they
    should obviously be further investigated.
    
    Some highlights of this patch include:
    
    - CFG no longer requires an lvalue bit for
      CFGElements
    - StackFrameContext doesn't need an 'asLValue'
      flag
    - The "VisitLValue" path from GRExprEngine has
      been eliminated.
    
    Besides the test case failures (XFAILed), there
    are surely other bugs that are fallout from
    this change.
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121960 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.