diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-11-25 22:24:25 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-11-25 22:24:25 +0000 |
commit | f73b282bf0391374c8dbf71d81ea5541cb3e1a74 (patch) | |
tree | 080e5b3ffed95e73306fb450368f937abb6f4ed2 /clang/test/CXX/basic/basic.link/p9.cpp | |
parent | e6929ffc21fdb77941cfa48fd3bb0f719adf76fe (diff) | |
download | bcm5719-llvm-f73b282bf0391374c8dbf71d81ea5541cb3e1a74.tar.gz bcm5719-llvm-f73b282bf0391374c8dbf71d81ea5541cb3e1a74.zip |
Implement the rules in C++ [basic.link] and C99 6.2.2 for computing
the linkage of a declaration. Switch the lame (and completely wrong)
NamedDecl::hasLinkage() over to using the new NamedDecl::getLinkage(),
along with the "can this declaration be a template argument?" check
that started all of this.
Fixes -fsyntax-only for PR5597.
llvm-svn: 89891
Diffstat (limited to 'clang/test/CXX/basic/basic.link/p9.cpp')
-rw-r--r-- | clang/test/CXX/basic/basic.link/p9.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/CXX/basic/basic.link/p9.cpp b/clang/test/CXX/basic/basic.link/p9.cpp new file mode 100644 index 00000000000..ecff3eebafe --- /dev/null +++ b/clang/test/CXX/basic/basic.link/p9.cpp @@ -0,0 +1,11 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +// FIXME: This test is woefully incomplete. +namespace N { } // expected-note{{here}} + +// First bullet: two names with external linkage that refer to +// different kinds of entities. +void f() { + int N(); // expected-error{{redefinition}} +} + |