From 791cdd5fe08162f982e013057b587c9a8ff0bd03 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 5 Sep 2013 18:37:45 +0000 Subject: [PATCH] R600: Fix segfault in R600TextureIntrinsicReplacer This pass was segfaulting when it ran into a non-intrinsic function call. Function calls are not supported, so now instead of segfaulting, we will get an assertion failure with a nice error message. I'm not sure how to test this using lit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190076 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/R600TextureIntrinsicsReplacer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp b/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp index 37d90596bd8..d4b8ec01c55 100644 --- a/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp +++ b/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp @@ -260,6 +260,9 @@ public: } void visitCallInst(CallInst &I) { + if (!I.getCalledFunction()) { + return; + } StringRef Name = I.getCalledFunction()->getName(); if (Name == "llvm.AMDGPU.tex") { ReplaceTexIntrinsic(I, false, TexSign, "llvm.R600.tex", "llvm.R600.texc"); -- 2.11.0