@@ -3386,6 +3386,10 @@ def CIR_BaseClassAddrOp : CIR_Op<"base_class_addr"> {
33863386 cannot be known by the operation, and that information affects how the
33873387 operation is lowered.
33883388
3389+ The validity of the relationship of derived and base cannot yet be verified.
3390+ If the target class is not a valid base class for the object, the behavior
3391+ is undefined.
3392+
33893393 Example:
33903394 ```c++
33913395 struct Base { };
@@ -3399,8 +3403,6 @@ def CIR_BaseClassAddrOp : CIR_Op<"base_class_addr"> {
33993403 ```
34003404 }];
34013405
3402- // The validity of the relationship of derived and base cannot yet be
3403- // verified, currently not worth adding a verifier.
34043406 let arguments = (ins
34053407 Arg<CIR_PointerType, "derived class pointer", [MemRead]>:$derived_addr,
34063408 IndexAttr:$offset, UnitAttr:$assume_not_null);
@@ -3430,6 +3432,10 @@ def CIR_DerivedClassAddrOp : CIR_Op<"derived_class_addr"> {
34303432 That depends on the context and cannot be known by the operation, and that
34313433 information affects how the operation is lowered.
34323434
3435+ The validity of the relationship of derived and base cannot yet be verified.
3436+ If the target class is not a valid derived class for the object, the
3437+ behavior is undefined.
3438+
34333439 Example:
34343440 ```c++
34353441 class A {};
@@ -3447,8 +3453,6 @@ def CIR_DerivedClassAddrOp : CIR_Op<"derived_class_addr"> {
34473453 ```
34483454 }];
34493455
3450- // The validity of the relationship of derived and base cannot yet be
3451- // verified, currently not worth adding a verifier.
34523456 let arguments = (ins
34533457 Arg<CIR_PointerType, "base class pointer", [MemRead]>:$base_addr,
34543458 IndexAttr:$offset, UnitAttr:$assume_not_null);
0 commit comments