summaryrefslogtreecommitdiffstats
path: root/test/modularize
diff options
context:
space:
mode:
authorJohn Thompson <John.Thompson.JTSoftware@gmail.com>2013-08-26 15:17:23 +0000
committerJohn Thompson <John.Thompson.JTSoftware@gmail.com>2013-08-26 15:17:23 +0000
commit8b82b7b291fa3a4b05da80f2f3f2a0b0d895ec98 (patch)
tree8ffdacb8c3d43db5dec6f765d49a7fcf51c623b0 /test/modularize
parent02df66515419f294fe09c317b81874cb8d2c9587 (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.h11
-rw-r--r--test/modularize/Inputs/NamespaceClasses.h20
-rw-r--r--test/modularize/Inputs/SomeTypes.h22
-rw-r--r--test/modularize/Inputs/TemplateClasses.h15
-rw-r--r--test/modularize/NoProblemsAnonymous.modularize3
-rw-r--r--test/modularize/NoProblemsNamespaceClasses.modularize3
-rw-r--r--test/modularize/NoProblemsTemplateClasses.modularize3
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