summaryrefslogtreecommitdiffstats
path: root/Tests/SetLang
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/SetLang')
-rw-r--r--Tests/SetLang/CMakeLists.txt7
-rw-r--r--Tests/SetLang/bar.c21
-rw-r--r--Tests/SetLang/foo.c7
3 files changed, 35 insertions, 0 deletions
diff --git a/Tests/SetLang/CMakeLists.txt b/Tests/SetLang/CMakeLists.txt
new file mode 100644
index 0000000..d53b308
--- /dev/null
+++ b/Tests/SetLang/CMakeLists.txt
@@ -0,0 +1,7 @@
+# test forcing a source file language to c++ from c
+project(SetLang)
+add_library(foo foo.c)
+add_executable(bar bar.c)
+set_source_files_properties(foo.c bar.c PROPERTIES LANGUAGE CXX)
+target_link_libraries(bar foo)
+set_target_properties(bar PROPERTIES LINKER_LANGUAGE CXX)
diff --git a/Tests/SetLang/bar.c b/Tests/SetLang/bar.c
new file mode 100644
index 0000000..f59c318
--- /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 0000000..e7918af
--- /dev/null
+++ b/Tests/SetLang/foo.c
@@ -0,0 +1,7 @@
+int foo()
+{
+ int r = 10;
+ r++;
+ int ret = r+10;
+ return ret;
+}