diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-09-21 04:16:19 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-09-21 04:16:19 +0000 |
| commit | 143021e0cab766c29f1442e3d9b4f5eccf318963 (patch) | |
| tree | 6e7855ad4fb659212d54eec62631c0b5afbd108e | |
| parent | 7814fa1d5dbc806c8919181f5a49fbb58a3cc6ec (diff) | |
| download | bcm5719-llvm-143021e0cab766c29f1442e3d9b4f5eccf318963.tar.gz bcm5719-llvm-143021e0cab766c29f1442e3d9b4f5eccf318963.zip | |
Add missing PCH support for -fstack-protector.
llvm-svn: 82435
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticFrontendKinds.td | 5 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHReader.cpp | 7 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHWriter.cpp | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/clang/include/clang/Basic/DiagnosticFrontendKinds.td b/clang/include/clang/Basic/DiagnosticFrontendKinds.td index 30193f1a875..b4e7f1093b5 100644 --- a/clang/include/clang/Basic/DiagnosticFrontendKinds.td +++ b/clang/include/clang/Basic/DiagnosticFrontendKinds.td @@ -73,7 +73,7 @@ def warn_pch_altivec : Error< def warn_pch_opencl : Error< "OpenCL language extensions were %select{disabled|enabled}0 in PCH file " "but are currently %select{disabled|enabled}1">; - def warn_elide_constructors : Error< +def warn_pch_elide_constructors : Error< "Elidable copy constructors were %select{disabled|enabled}0 in PCH file " "but are currently %select{disabled|enabled}1">; def warn_pch_exceptions : Error< @@ -95,6 +95,9 @@ def warn_pch_thread_safe_statics : Error< def warn_pch_posix_threads : Error< "PCH file was compiled %select{without|with}0 POSIX thread support but " "POSIX threads are currently %select{disabled|enabled}1">; +def warn_pch_stack_protector : Error< + "stack protector was %select{off|on|required}0 in PCH file but " + "is currently %select{off|on|required}1">; def warn_pch_blocks : Error< "blocks were %select{disabled|enabled}0 in PCH file but " "are currently %select{disabled|enabled}1">; diff --git a/clang/lib/Frontend/PCHReader.cpp b/clang/lib/Frontend/PCHReader.cpp index cd08b135471..9c855eb26f1 100644 --- a/clang/lib/Frontend/PCHReader.cpp +++ b/clang/lib/Frontend/PCHReader.cpp @@ -106,9 +106,11 @@ PCHValidator::ReadLanguageOptions(const LangOptions &LangOpts) { return true; } PARSE_LANGOPT_BENIGN(getVisibilityMode()); + PARSE_LANGOPT_IMPORTANT(getStackProtectorMode(), + diag::warn_pch_stack_protector); PARSE_LANGOPT_BENIGN(InstantiationDepth); PARSE_LANGOPT_IMPORTANT(OpenCL, diag::warn_pch_opencl); - PARSE_LANGOPT_IMPORTANT(ElideConstructors, diag::warn_elide_constructors); + PARSE_LANGOPT_IMPORTANT(ElideConstructors, diag::warn_pch_elide_constructors); #undef PARSE_LANGOPT_IRRELEVANT #undef PARSE_LANGOPT_BENIGN @@ -1720,6 +1722,9 @@ bool PCHReader::ParseLanguageOptions( ++Idx; LangOpts.setVisibilityMode((LangOptions::VisibilityMode)Record[Idx]); ++Idx; + LangOpts.setStackProtectorMode((LangOptions::StackProtectorMode) + Record[Idx]); + ++Idx; PARSE_LANGOPT(InstantiationDepth); PARSE_LANGOPT(OpenCL); #undef PARSE_LANGOPT diff --git a/clang/lib/Frontend/PCHWriter.cpp b/clang/lib/Frontend/PCHWriter.cpp index a6918e4c850..531c6f78184 100644 --- a/clang/lib/Frontend/PCHWriter.cpp +++ b/clang/lib/Frontend/PCHWriter.cpp @@ -625,6 +625,7 @@ void PCHWriter::WriteLanguageOptions(const LangOptions &LangOpts) { // unsigned type Record.push_back(LangOpts.getGCMode()); Record.push_back(LangOpts.getVisibilityMode()); + Record.push_back(LangOpts.getStackProtectorMode()); Record.push_back(LangOpts.InstantiationDepth); Record.push_back(LangOpts.OpenCL); Record.push_back(LangOpts.ElideConstructors); |

