diff options
| author | John McCall <rjmccall@apple.com> | 2009-11-03 19:33:12 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2009-11-03 19:33:12 +0000 |
| commit | 37958aa864c96ffcd942539723d825032772581a (patch) | |
| tree | 957407dd4ef3418ac3ec081b7b5b39bc8f4a0e62 | |
| parent | f6968a5749fe8e66da4aab8ac646b68261d41d85 (diff) | |
| download | bcm5719-llvm-37958aa864c96ffcd942539723d825032772581a.tar.gz bcm5719-llvm-37958aa864c96ffcd942539723d825032772581a.zip | |
Silence a warning by giving Parser::FieldCallback a virtual destructor, and
anchor the vtable to Parser.cpp for good measure.
llvm-svn: 85927
| -rw-r--r-- | clang/include/clang/Parse/Parser.h | 4 | ||||
| -rw-r--r-- | clang/lib/Parse/Parser.cpp | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h index 14dc8f8e369..3849f9d0d5c 100644 --- a/clang/include/clang/Parse/Parser.h +++ b/clang/include/clang/Parse/Parser.h @@ -983,6 +983,10 @@ private: struct FieldCallback { virtual DeclPtrTy invoke(FieldDeclarator &Field) = 0; + virtual ~FieldCallback() {} + + private: + virtual void _anchor(); }; void ParseStructDeclaration(DeclSpec &DS, FieldCallback &Callback); diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index e69cb72a0a0..cc4aec6297f 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -1019,3 +1019,10 @@ bool Parser::TryAnnotateCXXScopeToken(bool EnteringContext) { PP.AnnotateCachedTokens(Tok); return true; } + +// Anchor the Parser::FieldCallback vtable to this translation unit. +// We use a spurious method instead of the destructor because +// destroying FieldCallbacks can actually be slightly +// performance-sensitive. +void Parser::FieldCallback::_anchor() { +} |

