summaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-10-22 04:14:18 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-10-22 04:14:18 +0000
commit766e259e38e51c3773fcbd429f1faef52cb1de36 (patch)
tree7c5844a7d5fe19fceb13cb47331b2eef11cdeeb2 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parenta93033cc89648a8df95493ca6a1cee4f257ed312 (diff)
Sema: Do not allow template declarations inside local classes
Summary: Enforce the rule in C++11 [temp.mem]p2 that local classes cannot have member templates. This fixes PR16947. N.B. C++14 has slightly different wording to afford generic lambdas declared inside of functions. Fun fact: Some formulations of local classes with member templates would cause clang to crash during Itanium mangling, such as the following: void outer_mem() { struct Inner { template <typename = void> struct InnerTemplateClass { static void itc_mem() {} }; }; Inner::InnerTemplateClass<>::itc_mem(); } Reviewers: eli.friedman, rsmith, doug.gregor, faisalv Reviewed By: doug.gregor CC: cfe-commits, ygao Differential Revision: http://llvm-reviews.chandlerc.com/D1866 llvm-svn: 193144
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions