r321924 - Test case for r321396

Richard Trieu via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 5 19:20:59 PST 2018


Author: rtrieu
Date: Fri Jan  5 19:20:59 2018
New Revision: 321924

URL: http://llvm.org/viewvc/llvm-project?rev=321924&view=rev
Log:
Test case for r321396

Any hashing for methods should be able to compile this test case without
emitting an error.  Since the class and method come from the same header from
each module, there should be no messages about ODR violations.

Added:
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/class.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/function.h
    cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap
    cfe/trunk/test/Modules/odr_hash-Unresolved.cpp

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,3 @@
+// include.h
+#include "Sub1/Z.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,5 @@
+// not-include.h
+
+#include "function.h"
+#include "class.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,3 @@
+// X.h
+#include "Sub1/Z.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,4 @@
+// Y.h
+#include "Sub1/Z.h"
+#include "class.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,4 @@
+// Z.h
+#include "Sub2/A.h"
+#include "Sub2/B.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,3 @@
+// A.h
+#include "function.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,3 @@
+// B.h
+#include "function.h"
+

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/class.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/class.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/class.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/class.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,11 @@
+#ifndef Class
+#define Class
+template <class T>
+class S {
+  int Field;
+  void run() {
+    int x;
+    A::Check(&Field, 1);
+  }
+};
+#endif

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/function.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/function.h?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/function.h (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/function.h Fri Jan  5 19:20:59 2018
@@ -0,0 +1,6 @@
+#ifndef Function
+#define Function
+namespace A {
+static void Check(int*, int) {}
+}
+#endif

Added: cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap (added)
+++ cfe/trunk/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap Fri Jan  5 19:20:59 2018
@@ -0,0 +1,21 @@
+module Module1 {
+  module Sub1 {
+    umbrella "Sub1"
+    module * { export * }
+  }
+
+  module Sub2 {
+    umbrella "Sub2"
+    module * { export * }
+  }
+}
+
+module Module2 {
+  umbrella "Module2"
+  module * { export * }
+}
+
+module Other {
+  textual header "function.h"
+  textual header "class.h"
+}

Added: cfe/trunk/test/Modules/odr_hash-Unresolved.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/odr_hash-Unresolved.cpp?rev=321924&view=auto
==============================================================================
--- cfe/trunk/test/Modules/odr_hash-Unresolved.cpp (added)
+++ cfe/trunk/test/Modules/odr_hash-Unresolved.cpp Fri Jan  5 19:20:59 2018
@@ -0,0 +1,14 @@
+// RUN: rm -rf %t
+
+// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t/modules.cache \
+// RUN:  -I %S/Inputs/odr_hash-Unresolved \
+// RUN:  -fmodules \
+// RUN:  -fimplicit-module-maps \
+// RUN:  -fmodules-cache-path=%t/modules.cache \
+// RUN:  -fmodules-local-submodule-visibility \
+// RUN:  -std=c++11 -x c++ %s -fsyntax-only
+
+// Note: There is no -verify in the run line because some error messages are
+// not captured from the module building stage.
+
+#include "Module2/include.h"




More information about the cfe-commits mailing list