[cfe-commits] r173171 - in /cfe/trunk/lib/Serialization: ASTCommon.cpp ASTCommon.h ASTReader.cpp
John McCall
rjmccall at apple.com
Tue Jan 22 15:58:45 PST 2013
On Jan 22, 2013, at 9:08 AM, Douglas Gregor <dgregor at apple.com> wrote:
> Author: dgregor
> Date: Tue Jan 22 11:08:30 2013
> New Revision: 173171
>
> URL: http://llvm.org/viewvc/llvm-project?rev=173171&view=rev
> Log:
> Make getDefinitiveDeclContext() actually return a DeclContext, as one
> would expect, and clean up the return/break inconsistencies. Thanks,
> Sebastian!
>
> Modified:
> cfe/trunk/lib/Serialization/ASTCommon.cpp
> cfe/trunk/lib/Serialization/ASTCommon.h
> cfe/trunk/lib/Serialization/ASTReader.cpp
>
> Modified: cfe/trunk/lib/Serialization/ASTCommon.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTCommon.cpp?rev=173171&r1=173170&r2=173171&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTCommon.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTCommon.cpp Tue Jan 22 11:08:30 2013
> @@ -87,7 +87,8 @@
> return R;
> }
>
> -const Decl *serialization::getDefinitiveDeclContext(const DeclContext *DC) {
> +const DeclContext *
> +serialization::getDefinitiveDeclContext(const DeclContext *DC) {
> switch (DC->getDeclKind()) {
> // These entities may have multiple definitions.
> case Decl::TranslationUnit:
> @@ -100,7 +101,7 @@
> case Decl::Record:
> if (const TagDecl *Def = cast<TagDecl>(DC)->getDefinition())
> return Def;
> - break;
> + return 0;
>
> // FIXME: These can be defined in one place... except special member
> // functions and out-of-line definitions.
> @@ -122,25 +123,25 @@
> case Decl::ObjCCategory:
> case Decl::ObjCCategoryImpl:
> case Decl::ObjCImplementation:
> - return cast<Decl>(DC);
> + return DC;
>
> case Decl::ObjCProtocol:
> if (const ObjCProtocolDecl *Def
> = cast<ObjCProtocolDecl>(DC)->getDefinition())
> return Def;
> - break;
> + return 0;
>
> // FIXME: These are defined in one place, but properties in class extensions
> // end up being back-patched into the main interface. See
> // Sema::HandlePropertyInClassExtension for the offending code.
> case Decl::ObjCInterface:
> - break;
> + return 0;
>
> default:
> llvm_unreachable("Unhandled DeclContext in AST reader");
> }
>
> - return 0;
> + llvm_unreachable("Unhandled decl kind");
> }
Why do you have both an unreachable default and an unreachable fall-through?
John.
More information about the cfe-commits
mailing list