Don't use an unqualified 'abs' function call with a builtin type.
authorChandler Carruth <chandlerc@gmail.com>
Fri, 10 Oct 2014 08:27:19 +0000 (08:27 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 10 Oct 2014 08:27:19 +0000 (08:27 +0000)
commitf2f5070d79bf04bf65fd7b27b2e77842ab53cbae
treecfaf9b6cf4cca04fe12268c39161fc289316ceb8
parentafb7eea9767e3d87cbd19cfd7922edaad43c119a
Don't use an unqualified 'abs' function call with a builtin type.

This is dangerous for numerous reasons. The primary risk here is with
floating point or double types where if the wrong header files are
included in a strange order this can implicitly convert to integers and
then call the C abs function on the integers. There is a secondary risk
that even impacts integers where if the namespace the code is written in
ever defines an abs overload for types within that namespace the global
abs will be hidden. The correct form is to call std::abs or write 'using
std::abs' for builtin types (and only the latter is correct in any
generic context).

I've also added the requisite header to be a bit more explicit here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219484 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp