From d74b6a8f64fc88cb33eeecc60d7bf30b31f17fa3 Mon Sep 17 00:00:00 2001 From: George Burgess IV Date: Tue, 16 Jan 2018 03:01:50 +0000 Subject: [Sema] Fix a crash on invalid features in multiversioning We were trying to emit a diag::err_bad_multiversion_option diagnostic, which expects an int as its first argument, with a string argument. As it happens, the string `Feature` that was causing this was shadowing an int `Feature` from the surrounding scope. :) llvm-svn: 322530 --- clang/lib/Sema/SemaDecl.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'clang/lib/Sema/SemaDecl.cpp') diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 23fcfb4ec7c..1a7d9a84306 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -9175,9 +9175,9 @@ static bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) { return true; } - for (const auto &Feature : ParseInfo.Features) { - auto BareFeat = StringRef{Feature}.substr(1); - if (Feature[0] == '-') { + for (const auto &Feat : ParseInfo.Features) { + auto BareFeat = StringRef{Feat}.substr(1); + if (Feat[0] == '-') { S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) << Feature << ("no-" + BareFeat).str(); return true; -- cgit v1.2.3