[PATCH] Use correct semantic DeclContext for local declarations of variables and functions with linkage

Eli Friedman eli.friedman at gmail.com
Wed Aug 28 15:47:46 PDT 2013


The concept generally seems fine.

The setLocalExternDecl thing seems a bit fiddly, since I'm pretty sure it
can be derived from information we already keep around.  Did you consider
computing that information on demand?

Do we compute the correct DeclContext for a friend in a local class which
is a redeclaration of a local extern decl?  Might be nice to test.

It looks like some changes slipped in which should be committed separately
(around where you added the reference to 6.2.7p2).

Does you patch work correctly with an extern local decl inside a block?
 e.g. "void f() { ^{ void extern_decl(); extern_decl(); }(); }"?

That's all I can think of, at least for now.



On Fri, Aug 23, 2013 at 6:15 PM, Richard Smith <richard at metafoo.co.uk>wrote:

> Hi doug.gregor, eli.friedman,
>
> http://llvm-reviews.chandlerc.com/D1499
>
> CHANGE SINCE LAST DIFF
>   http://llvm-reviews.chandlerc.com/D1499?vs=3726&id=3734#toc
>
> Files:
>   lib/Serialization/ASTReaderDecl.cpp
>   lib/Sema/SemaDeclCXX.cpp
>   lib/Sema/SemaAccess.cpp
>   lib/Sema/SemaTemplateInstantiateDecl.cpp
>   lib/Sema/SemaLookup.cpp
>   lib/Sema/SemaExpr.cpp
>   lib/Sema/SemaCodeComplete.cpp
>   lib/Sema/SemaDecl.cpp
>   test/Index/usrs.m
>   test/CXX/drs/dr0xx.cpp
>   test/CXX/dcl.decl/dcl.meaning/dcl.array/p3.cpp
>   test/CXX/basic/basic.link/p7.cpp
>   test/SemaCXX/cxx0x-initializer-references.cpp
>   test/SemaCXX/function-redecl.cpp
>   test/SemaCXX/warn-unreachable.cpp
>   test/SemaCXX/extern-c.cpp
>   test/CodeGenCXX/mangle.cpp
>   include/clang/Sema/Lookup.h
>   include/clang/Sema/Sema.h
>   include/clang/AST/DeclBase.h
>   include/clang/AST/Decl.h
>   www/cxx_dr_status.html
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130828/a1dade1e/attachment.html>


More information about the cfe-commits mailing list