summaryrefslogtreecommitdiff
path: root/Tests/SetLang
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/SetLang')
-rw-r--r--Tests/SetLang/CMakeLists.txt10
-rw-r--r--Tests/SetLang/bar.c21
-rw-r--r--Tests/SetLang/foo.c7
3 files changed, 38 insertions, 0 deletions
diff --git a/Tests/SetLang/CMakeLists.txt b/Tests/SetLang/CMakeLists.txt
new file mode 100644
index 000000000..ab6570c33
--- /dev/null
+++ b/Tests/SetLang/CMakeLists.txt
@@ -0,0 +1,10 @@
+# test forcing a source file language to c++ from c
+cmake_minimum_required (VERSION 2.6)
+project(SetLang)
+# force this to be verbose so I can debug a dashboard entry
+SET(CMAKE_VERBOSE_MAKEFILE 1)
+add_library(foo foo.c)
+add_executable(SetLang bar.c)
+set_source_files_properties(foo.c bar.c PROPERTIES LANGUAGE CXX)
+target_link_libraries(SetLang foo)
+set_target_properties(SetLang PROPERTIES LINKER_LANGUAGE CXX)
diff --git a/Tests/SetLang/bar.c b/Tests/SetLang/bar.c
new file mode 100644
index 000000000..f59c318b1
--- /dev/null
+++ b/Tests/SetLang/bar.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+int foo();
+class A
+{
+public:
+ A() {this->i = foo();}
+ int i;
+};
+
+int main()
+{
+ A a;
+ if(a.i == 21)
+ {
+ printf("passed foo is 21\n");
+ return 0;
+ }
+ printf("Failed foo is not 21\n");
+ return -1;
+}
diff --git a/Tests/SetLang/foo.c b/Tests/SetLang/foo.c
new file mode 100644
index 000000000..e7918af58
--- /dev/null
+++ b/Tests/SetLang/foo.c
@@ -0,0 +1,7 @@
+int foo()
+{
+ int r = 10;
+ r++;
+ int ret = r+10;
+ return ret;
+}