clemenswasser added a comment.

@vitalybuka There seems to be a bug in MSVCs bit-field implementation, which 
causes the `disable.c` test to fail.
This reproducer (assert) passes with gcc and fails with MSVC (`m.tag` is 
`0xffffffff`):
  cpp
  #include <stdint.h>
  #include <assert.h>
  
  enum ChunkTag {
    kDirectlyLeaked = 0,  // default
    kIndirectlyLeaked = 1,
    kReachable = 2,
    kIgnored = 3
  };
  
  struct ChunkMetadata {
    uint8_t allocated : 8;  // Must be first.
    ChunkTag tag : 2;
    uintptr_t requested_size : 54;
    uint32_t stack_trace_id;
  };
  
  int main() {
      ChunkMetadata m;
      m.tag = kIgnored;
      assert(m.tag == kIgnored);
  }

Do you have a suggestion how I could fix this on MSVC


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

https://reviews.llvm.org/D115103

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

Reply via email to