diff options
author | John Thompson <John.Thompson.JTSoftware@gmail.com> | 2013-08-26 15:17:23 +0000 |
---|---|---|
committer | John Thompson <John.Thompson.JTSoftware@gmail.com> | 2013-08-26 15:17:23 +0000 |
commit | 8b82b7b291fa3a4b05da80f2f3f2a0b0d895ec98 (patch) | |
tree | 8ffdacb8c3d43db5dec6f765d49a7fcf51c623b0 /test/modularize | |
parent | 02df66515419f294fe09c317b81874cb8d2c9587 (diff) |
Fixed some issues that resulted in erroneous duplicate symbol error messages.
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@189228 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/modularize')
-rw-r--r-- | test/modularize/Inputs/Anonymous.h | 11 | ||||
-rw-r--r-- | test/modularize/Inputs/NamespaceClasses.h | 20 | ||||
-rw-r--r-- | test/modularize/Inputs/SomeTypes.h | 22 | ||||
-rw-r--r-- | test/modularize/Inputs/TemplateClasses.h | 15 | ||||
-rw-r--r-- | test/modularize/NoProblemsAnonymous.modularize | 3 | ||||
-rw-r--r-- | test/modularize/NoProblemsNamespaceClasses.modularize | 3 | ||||
-rw-r--r-- | test/modularize/NoProblemsTemplateClasses.modularize | 3 |
7 files changed, 55 insertions, 22 deletions
diff --git a/test/modularize/Inputs/Anonymous.h b/test/modularize/Inputs/Anonymous.h new file mode 100644 index 00000000..8388ecaa --- /dev/null +++ b/test/modularize/Inputs/Anonymous.h @@ -0,0 +1,11 @@ +// Exercise some anonymous type issues. + +// Anonymous enum. +enum { + Tag1 +}; + +// Anonymous enum typedef. +typedef enum { + Tag2 +} AnonymousEnum; diff --git a/test/modularize/Inputs/NamespaceClasses.h b/test/modularize/Inputs/NamespaceClasses.h new file mode 100644 index 00000000..57e6091f --- /dev/null +++ b/test/modularize/Inputs/NamespaceClasses.h @@ -0,0 +1,20 @@ +// Define same class name in different namespaces. + +namespace Namespace1 { + class NamespaceClass { + public: + NamespaceClass() : Member(0) {} + private: + int Member; + }; +} + +namespace Namespace2 { + class NamespaceClass { + public: + NamespaceClass() : Member(0) {} + private: + int Member; + }; +} + diff --git a/test/modularize/Inputs/SomeTypes.h b/test/modularize/Inputs/SomeTypes.h index c5c7e7ae..46c4316f 100644 --- a/test/modularize/Inputs/SomeTypes.h +++ b/test/modularize/Inputs/SomeTypes.h @@ -14,25 +14,3 @@ public: private: int Member; }; - -/* -This currently doesn't work. Can't handle same name in different namespaces. -namespace Namespace1 { - class NamespaceClass { - public: - NamespaceClass() : Member(0) {} - private: - int Member; - }; -} - -namespace Namespace2 { - class NamespaceClass { - public: - NamespaceClass() : Member(0) {} - private: - int Member; - }; -} -*/ - diff --git a/test/modularize/Inputs/TemplateClasses.h b/test/modularize/Inputs/TemplateClasses.h new file mode 100644 index 00000000..3eab6d90 --- /dev/null +++ b/test/modularize/Inputs/TemplateClasses.h @@ -0,0 +1,15 @@ +// Exercise some template issues. Should not produce errors. + +// Forward declaration. +template<class T> class TemplateClass; + +// Full declaration. +template<class T>class TemplateClass { +public: + TemplateClass() {} +private: + T Member; +}; + +// Template alias. +template<class T> using TemplateClassAlias = TemplateClass<T>; diff --git a/test/modularize/NoProblemsAnonymous.modularize b/test/modularize/NoProblemsAnonymous.modularize new file mode 100644 index 00000000..20b18985 --- /dev/null +++ b/test/modularize/NoProblemsAnonymous.modularize @@ -0,0 +1,3 @@ +# RUN: modularize %s -x c++ + +Inputs/Anonymous.h diff --git a/test/modularize/NoProblemsNamespaceClasses.modularize b/test/modularize/NoProblemsNamespaceClasses.modularize new file mode 100644 index 00000000..1d02c788 --- /dev/null +++ b/test/modularize/NoProblemsNamespaceClasses.modularize @@ -0,0 +1,3 @@ +# RUN: modularize %s -x c++ + +Inputs/NamespaceClasses.h diff --git a/test/modularize/NoProblemsTemplateClasses.modularize b/test/modularize/NoProblemsTemplateClasses.modularize new file mode 100644 index 00000000..d41c43cb --- /dev/null +++ b/test/modularize/NoProblemsTemplateClasses.modularize @@ -0,0 +1,3 @@ +# RUN: modularize %s -x c++ + +Inputs/TemplateClasses.h |