From 0f50b08940ea0a9a44f2715f49ccf6bc64b95491 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 15 Sep 2011 14:56:27 +0000 Subject: [PATCH] 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 --- lib/Basic/LangOptions.cpp | 3 +++ test/Modules/Inputs/Module.framework/Headers/Module.h | 1 + test/Modules/on-demand-build.m | 11 ++++++++--- 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}} } -- 2.50.1