diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-09-13 17:21:33 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-09-13 17:21:33 +0000 |
| commit | 79a91418bd1a5e1cb50b34ec8a5d45a4eea4e898 (patch) | |
| tree | e0871a264eeffe0faaf2e7bf42dc4eb0fd83bce3 /clang/lib/Basic | |
| parent | 0494c5c35d801083f63b033d8367909288b50a76 (diff) | |
| download | bcm5719-llvm-79a91418bd1a5e1cb50b34ec8a5d45a4eea4e898.tar.gz bcm5719-llvm-79a91418bd1a5e1cb50b34ec8a5d45a4eea4e898.zip | |
Switch LangOptions over to a .def file that describes header of the
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
Diffstat (limited to 'clang/lib/Basic')
| -rw-r--r-- | clang/lib/Basic/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | clang/lib/Basic/LangOptions.cpp | 21 | ||||
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 2 |
3 files changed, 23 insertions, 1 deletions
diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt index c1e7cf6bf97..ff348896e39 100644 --- a/clang/lib/Basic/CMakeLists.txt +++ b/clang/lib/Basic/CMakeLists.txt @@ -8,6 +8,7 @@ add_clang_library(clangBasic FileManager.cpp FileSystemStatCache.cpp IdentifierTable.cpp + LangOptions.cpp SourceLocation.cpp SourceManager.cpp TargetInfo.cpp diff --git a/clang/lib/Basic/LangOptions.cpp b/clang/lib/Basic/LangOptions.cpp new file mode 100644 index 00000000000..d29f7774dce --- /dev/null +++ b/clang/lib/Basic/LangOptions.cpp @@ -0,0 +1,21 @@ +//===--- LangOptions.cpp - C Language Family Language Options ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the LangOptions class. +// +//===----------------------------------------------------------------------===// +#include "clang/Basic/LangOptions.h" + +using namespace clang; + +LangOptions::LangOptions() { +#define LANGOPT(Name, Bits, Default, Description) Name = Default; +#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) set##Name(Default); +#include "clang/Basic/LangOptions.def" +} diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 206ff65df5b..6a6030f518e 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -89,7 +89,7 @@ static void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, Builder.defineMacro("__weak", "__attribute__((objc_gc(weak)))"); // Darwin defines __strong even in C mode (just to nothing). - if (Opts.getGCMode() != LangOptions::NonGC) + if (Opts.getGC() != LangOptions::NonGC) Builder.defineMacro("__strong", "__attribute__((objc_gc(strong)))"); else Builder.defineMacro("__strong", ""); |

