タグ

開発とClangに関するmohnoのブックマーク (2)

  • C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合

    Krister Walfridsson’s blog: Why undefined behavior may call a never-called function 以下のようなコードをClangでコンパイルすると、 #include <cstdlib> typedef int (*Function)(); static Function Do; static int EraseAll() { return system("rm -rf /"); } void NeverCalled() { Do = EraseAll; } int main() { return Do(); } Clangは以下のような最適化されたコードを吐く。 main: movl $.L.str, %edi jmp system .L.str: .asciz "rm -rf /" これは以下のようなコードと同じだ。

    mohno
    mohno 2017/09/26
    「未定義の挙動はありえないのでその場合は除外してよい」←ビックリだけど、そもそも元のコードが間違っているわけで、特に深刻な問題というわけではないな。
  • 植山 類

    仕事を説明するときに「Google仕事をしているけどオープンソースなのでGoogleのプロダクトを作っているわけではないし、むしろアップルとかソニーの人と一緒に仕事している」というと、???という反応になることが多いので、こういう仕事をしているんだよということをちょっと説明してみます。...

    植山 類
    mohno
    mohno 2016/04/17
    「メーリングリストに要望を出すだけでは基本的に誰もやってくれません」「会社は善意でこういうことをやっているわけではなく、ビジネス上の判断でやっている…会社と会社…会社と個人の利害が一致している」
  • 1