[all-commits] [llvm/llvm-project] 211b51: [clang][bytecode] Propagate IsVolatile bit to subo...

Timm Baeder via All-commits all-commits at lists.llvm.org
Fri Apr 25 02:23:55 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 211b51e4713d814d6fa894f4fc309a364c5642ce
      https://github.com/llvm/llvm-project/commit/211b51e4713d814d6fa894f4fc309a364c5642ce
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-04-25 (Fri, 25 Apr 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Descriptor.cpp
    M clang/lib/AST/ByteCode/Descriptor.h
    M clang/lib/AST/ByteCode/DynamicAllocator.cpp
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/InterpBlock.h
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ByteCode/Pointer.h
    M clang/lib/AST/ByteCode/Program.cpp
    M clang/lib/AST/ByteCode/Program.h
    M clang/test/AST/ByteCode/literals.cpp

  Log Message:
  -----------
  [clang][bytecode] Propagate IsVolatile bit to subobjects (#137293)

For
```c++
  struct S {
    constexpr S(int=0) : i(1) {}
    int i;
  };
  constexpr volatile S vs;
```

reading from `vs.i` is not allowed, even though `i` is not volatile
qualified. Propagate the IsVolatile bit down the hierarchy, so we know
reading from `vs.i` is a volatile read.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list