diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-02-17 03:23:10 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-02-17 03:23:10 +0000 |
commit | 9add31798f621f843233dbff8bba103fca64447b (patch) | |
tree | 231b324f975bfb9bd2db0e66c3f6d3b6d0440b4e /lib/AST/Decl.cpp | |
parent | 85b2a47ec0450ee78b2c36ec482179cb4743bff7 (diff) |
Static variables and functions won't collide with standard library
functions, so if we're declaring a static we should implicitly declare
a library function by the same name (e.g., malloc, strdup). Fixes PR3592.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r-- | lib/AST/Decl.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index ca1fa0c1e1..387f79a013 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -271,6 +271,10 @@ unsigned FunctionDecl::getBuiltinID(ASTContext &Context) const { // function. Determine whether it actually refers to the C library // function or whether it just has the same name. + // If this is a static function, it's not a builtin. + if (getStorageClass() == Static) + return 0; + // If this function is at translation-unit scope and we're not in // C++, it refers to the C library function. if (!Context.getLangOptions().CPlusPlus && |