This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG0c2edf27a22e: [clang][dataflow] Make `Value` and `StorageLocation` non-copyable (authored by sgatev).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127865/new/ https://reviews.llvm.org/D127865 Files: clang/include/clang/Analysis/FlowSensitive/StorageLocation.h clang/include/clang/Analysis/FlowSensitive/Value.h Index: clang/include/clang/Analysis/FlowSensitive/Value.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/Value.h +++ clang/include/clang/Analysis/FlowSensitive/Value.h @@ -47,6 +47,12 @@ explicit Value(Kind ValKind) : ValKind(ValKind) {} + // Non-copyable because addresses of values are used as their identities + // throughout framework and user code. The framework is responsible for + // construction and destruction of values. + Value(const Value &) = delete; + Value &operator=(const Value &) = delete; + virtual ~Value() = default; Kind getKind() const { return ValKind; } Index: clang/include/clang/Analysis/FlowSensitive/StorageLocation.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/StorageLocation.h +++ clang/include/clang/Analysis/FlowSensitive/StorageLocation.h @@ -31,6 +31,12 @@ StorageLocation(Kind LocKind, QualType Type) : LocKind(LocKind), Type(Type) {} + // Non-copyable because addresses of storage locations are used as their + // identities throughout framework and user code. The framework is responsible + // for construction and destruction of storage locations. + StorageLocation(const StorageLocation &) = delete; + StorageLocation &operator=(const StorageLocation &) = delete; + virtual ~StorageLocation() = default; Kind getKind() const { return LocKind; }
Index: clang/include/clang/Analysis/FlowSensitive/Value.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/Value.h +++ clang/include/clang/Analysis/FlowSensitive/Value.h @@ -47,6 +47,12 @@ explicit Value(Kind ValKind) : ValKind(ValKind) {} + // Non-copyable because addresses of values are used as their identities + // throughout framework and user code. The framework is responsible for + // construction and destruction of values. + Value(const Value &) = delete; + Value &operator=(const Value &) = delete; + virtual ~Value() = default; Kind getKind() const { return ValKind; } Index: clang/include/clang/Analysis/FlowSensitive/StorageLocation.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/StorageLocation.h +++ clang/include/clang/Analysis/FlowSensitive/StorageLocation.h @@ -31,6 +31,12 @@ StorageLocation(Kind LocKind, QualType Type) : LocKind(LocKind), Type(Type) {} + // Non-copyable because addresses of storage locations are used as their + // identities throughout framework and user code. The framework is responsible + // for construction and destruction of storage locations. + StorageLocation(const StorageLocation &) = delete; + StorageLocation &operator=(const StorageLocation &) = delete; + virtual ~StorageLocation() = default; Kind getKind() const { return LocKind; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits