NoQ accepted this revision.
NoQ added a comment.

Thanks!

Eww. Weird AST.

I wonder how this should work:

  // RUN: %clang_analyze_cc1 -analyzer-checker debug.ExprInspection 
-fheinous-gnu-extensions -w %s -verify
  
  int clang_analyzer_eval(int);
  
  int global;
  void testRValueOutput() {
    int &ref = global;
    ref = 1;
    __asm__("" : "=r"((int)ref));
    clang_analyzer_eval(ref == 1); // currently says UNKNOWN
    clang_analyzer_eval(global == 1); // currently says TRUE
  }

The ultimate solution would probably be to add a fake cloned asm statement to 
the CFG (instead of the real asm statement) that would point to the correct 
output child-expression(s) that are untouched themselves but simply have their 
noop casts removed.

Or we could try


Repository:
  rC Clang

https://reviews.llvm.org/D45416



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to