aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-09-15 14:56:27 +0000
committerDouglas Gregor <dgregor@apple.com>2011-09-15 14:56:27 +0000
commit0f50b08940ea0a9a44f2715f49ccf6bc64b95491 (patch)
tree06b42a8927fbf0b46815a7cfc06804b5a69983cb
parent808ef66afbafb210baa19b567ac20f73142f5111 (diff)
Teach LangOptions::resetNonModularOptions to actually do what it says it does
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139791 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Basic/LangOptions.cpp3
-rw-r--r--test/Modules/Inputs/Module.framework/Headers/Module.h1
-rw-r--r--test/Modules/on-demand-build.m11
3 files changed, 12 insertions, 3 deletions
diff --git a/lib/Basic/LangOptions.cpp b/lib/Basic/LangOptions.cpp
index e9e516f10d..5f479dbb77 100644
--- a/lib/Basic/LangOptions.cpp
+++ b/lib/Basic/LangOptions.cpp
@@ -23,5 +23,8 @@ LangOptions::LangOptions() {
void LangOptions::resetNonModularOptions() {
#define LANGOPT(Name, Bits, Default, Description)
#define BENIGN_LANGOPT(Name, Bits, Default, Description) Name = Default;
+#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) \
+ Name = Default;
+#include "clang/Basic/LangOptions.def"
}
diff --git a/test/Modules/Inputs/Module.framework/Headers/Module.h b/test/Modules/Inputs/Module.framework/Headers/Module.h
index af403c8395..0753b78cdb 100644
--- a/test/Modules/Inputs/Module.framework/Headers/Module.h
+++ b/test/Modules/Inputs/Module.framework/Headers/Module.h
@@ -6,5 +6,6 @@ const char *getModuleVersion(void);
@interface Module
+(const char *)version; // retrieve module version
++alloc;
@end
diff --git a/test/Modules/on-demand-build.m b/test/Modules/on-demand-build.m
index d0557ebbee..418e912f63 100644
--- a/test/Modules/on-demand-build.m
+++ b/test/Modules/on-demand-build.m
@@ -1,12 +1,17 @@
// RUN: rm -rf %t
-// RUN: %clang_cc1 -fmodule-cache-path %t -F %S/Inputs -DFOO -verify %s
-// RUN: %clang_cc1 -x objective-c++ -fmodule-cache-path %t -F %S/Inputs -DFOO -verify %s
-// RUN: %clang_cc1 -fmodule-cache-path %t -F %S/Inputs -DFOO -verify %s
+// RUN: %clang_cc1 -fno-objc-infer-related-result-type -Werror -fmodule-cache-path %t -F %S/Inputs -DFOO -verify %s
+// RUN: %clang_cc1 -fno-objc-infer-related-result-type -Werror -x objective-c++ -fmodule-cache-path %t -F %S/Inputs -DFOO -verify %s
+// RUN: %clang_cc1 -fno-objc-infer-related-result-type -Werror -fmodule-cache-path %t -F %S/Inputs -DFOO -verify %s
__import_module__ Module;
+@interface OtherClass
+@end
+// in module: expected-note{{class method 'alloc' is assumed to return an instance of its receiver type ('Module *')}}
void test_getModuleVersion() {
const char *version = getModuleVersion();
const char *version2 = [Module version];
+
+ OtherClass *other = [Module alloc]; // expected-error{{init}}
}