blob: f8714b2389cbcbaf98e6feaf3f8f681871ef94eb [file] [log] [blame]
Douglas Gregore289d812011-09-13 17:21:33 +00001//===--- LangOptions.cpp - C Language Family Language Options ---*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines the LangOptions class.
11//
12//===----------------------------------------------------------------------===//
13#include "clang/Basic/LangOptions.h"
14
15using namespace clang;
16
Will Dietz4f45bc02013-01-18 11:30:38 +000017const SanitizerOptions SanitizerOptions::Disabled = {};
18
Douglas Gregore289d812011-09-13 17:21:33 +000019LangOptions::LangOptions() {
20#define LANGOPT(Name, Bits, Default, Description) Name = Default;
21#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) set##Name(Default);
22#include "clang/Basic/LangOptions.def"
Will Dietz4f45bc02013-01-18 11:30:38 +000023
24 Sanitize = SanitizerOptions::Disabled;
Douglas Gregore289d812011-09-13 17:21:33 +000025}
Douglas Gregor1c7e0472011-09-13 20:44:41 +000026
27void LangOptions::resetNonModularOptions() {
28#define LANGOPT(Name, Bits, Default, Description)
29#define BENIGN_LANGOPT(Name, Bits, Default, Description) Name = Default;
Douglas Gregor0f50b082011-09-15 14:56:27 +000030#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) \
31 Name = Default;
32#include "clang/Basic/LangOptions.def"
Will Dietz4f45bc02013-01-18 11:30:38 +000033
Richard Smithd46b7ec2013-02-07 01:09:29 +000034 // FIXME: This should not be reset; modules can be different with different
35 // sanitizer options (this affects __has_feature(address_sanitizer) etc).
Will Dietz4f45bc02013-01-18 11:30:38 +000036 Sanitize = SanitizerOptions::Disabled;
37
Douglas Gregorb86b8dc2011-11-15 19:35:01 +000038 CurrentModule.clear();
Douglas Gregor1c7e0472011-09-13 20:44:41 +000039}
40