diff --git a/gcc/analyzer/sm-malloc.cc b/gcc/analyzer/sm-malloc.cc index 4f07d1f9257..74c6fee2638 100644 --- a/gcc/analyzer/sm-malloc.cc +++ b/gcc/analyzer/sm-malloc.cc @@ -1543,7 +1543,7 @@ known_allocator_p (const_tree fndecl, const gcall *call) /* ... or it is a builtin allocator that allocates objects freed with __builtin_free. */ - if (fndecl_built_in_p (fndecl)) + if (fndecl_built_in_p (fndecl, BUILT_IN_NORMAL)) switch (DECL_FUNCTION_CODE (fndecl)) { case BUILT_IN_MALLOC: diff --git a/gcc/testsuite/gcc.dg/analyzer/pr101721.c b/gcc/testsuite/gcc.dg/analyzer/pr101721.c new file mode 100644 index 00000000000..07ef2d65cc3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/analyzer/pr101721.c @@ -0,0 +1,8 @@ +/* PR analyzer/101721 */ +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + +void +foo () +{ + __builtin_ia32_pause (); +}