我有以下代码,我确信可以从垃圾内存中读取,但 clang 消毒剂不会抱怨。
我可以做些什么来触发它们,或者我应该将其视为限制/错误?
#include <algorithm>
#include <iostream>
#include <vector>
struct B{
int x;
};
struct D : public B{
short y;
D& operator = (const D& other) {
y = other.y;
return *this;
}
};
int main() {
D var1{4,7},var2;
var2=var1;
std::cout << var2.x << " " << var2.y << std::endl;
}
我尝试设置 O0,因为这有时会有所帮助,但这次没有。
我也愿意使用 gcc,但我认为 gcc 没有内存清理器,只有 asan。