📄 pr19786.c
字号:
// { dg-do run }/* { dg-options "-O2" } */// We used to get alias grouping wrong on this one, hoisting accesses// to the vector's end out of the loop.#include <vector>#include <cassert>struct A{ double unused; // If I remove it => it works. std::vector<int> v; A() : v(1) {}};inline // If not inline => it works.A g(){ A r; r.v.resize(2); r.v[0] = 1; while (!r.v.empty() && r.v.back() == 0) r.v.pop_back(); return r;}A f(const A &a){ if (a.v.empty()) return a; if (a.v.empty()) return a; // A z = g(); return z; // If I return like this => it works. return g();}int main(){ A a; A b; A r = f(a); assert(r.v.size() != 0); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -