aboutsummaryrefslogtreecommitdiff
path: root/test/Modules/overloadable-attrs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/Modules/overloadable-attrs.cpp')
-rw-r--r--test/Modules/overloadable-attrs.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/Modules/overloadable-attrs.cpp b/test/Modules/overloadable-attrs.cpp
new file mode 100644
index 000000000000..38c9558fe882
--- /dev/null
+++ b/test/Modules/overloadable-attrs.cpp
@@ -0,0 +1,22 @@
+// RUN: rm -rf %t
+// RUN: %clang_cc1 -I%S/Inputs/overloadable-attrs -fmodules \
+// RUN: -fmodule-map-file=%S/Inputs/overloadable-attrs/module.modulemap \
+// RUN: -fmodules-cache-path=%t -verify %s -std=c++11
+//
+// Ensures that we don't merge decls with attrs that we allow overloading on.
+//
+// expected-no-diagnostics
+
+#include "a.h"
+
+static_assert(enable_if_attrs::fn1() == 1, "");
+static_assert(enable_if_attrs::fn2() == 1, "");
+static_assert(enable_if_attrs::fn3(0) == 0, "");
+static_assert(enable_if_attrs::fn3(1) == 1, "");
+static_assert(enable_if_attrs::fn4(0) == 0, "");
+static_assert(enable_if_attrs::fn4(1) == 1, "");
+static_assert(enable_if_attrs::fn5(0) == 0, "");
+static_assert(enable_if_attrs::fn5(1) == 1, "");
+
+static_assert(pass_object_size_attrs::fn1(nullptr) == 1, "");
+static_assert(pass_object_size_attrs::fn2(nullptr) == 1, "");