diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaDeclAttr.cpp | 1 | ||||
| -rw-r--r-- | clang/test/Sema/warn-unused-function.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index ad0313d976c..c429fd37dd5 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -1450,6 +1450,7 @@ static void HandleCleanupAttr(Decl *d, const AttributeList &Attr, Sema &S) { } d->addAttr(::new (S.Context) CleanupAttr(Attr.getLoc(), S.Context, FD)); + FD->setUsed(); } /// Handle __attribute__((format_arg((idx)))) attribute based on diff --git a/clang/test/Sema/warn-unused-function.c b/clang/test/Sema/warn-unused-function.c index 24d4fade9b3..5bbcf18a623 100644 --- a/clang/test/Sema/warn-unused-function.c +++ b/clang/test/Sema/warn-unused-function.c @@ -47,3 +47,10 @@ static void f12(void); // PR7923 static void unused(void) { unused(); } // expected-warning{{unused}} + +// rdar://8728293 +static void cleanupMalloc(char * const * const allocation) { } +void f13(void) { + char * const __attribute__((cleanup(cleanupMalloc))) a; + (void)a; +} |

