[llvm] r223911 - DataLayout: Provide nicer diagnostics for malformed strings
Robinson, Paul
Paul_Robinson at playstation.sony.com
Tue Dec 9 20:43:45 PST 2014
This is all lovely and I'm not complaining, as I probably couldn't have
gotten back to PR21678 before the new year; but did you look at what
Reid suggested in that PR? It felt a little cleaner than converting
assertions to report_fatal_error directly.
Thanks,
--paulr
> -----Original Message-----
> From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-
> bounces at cs.uiuc.edu] On Behalf Of David Majnemer
> Sent: Tuesday, December 09, 2014 6:37 PM
> To: llvm-commits at cs.uiuc.edu
> Subject: [llvm] r223911 - DataLayout: Provide nicer diagnostics for
> malformed strings
>
> Author: majnemer
> Date: Tue Dec 9 20:36:41 2014
> New Revision: 223911
>
> URL: http://llvm.org/viewvc/llvm-project?rev=223911&view=rev
> Log:
> DataLayout: Provide nicer diagnostics for malformed strings
>
> Added:
> llvm/trunk/test/Assembler/invalid-datalayout10.ll
> llvm/trunk/test/Assembler/invalid-datalayout11.ll
> llvm/trunk/test/Assembler/invalid-datalayout12.ll
> llvm/trunk/test/Assembler/invalid-datalayout13.ll
> Modified:
> llvm/trunk/lib/IR/DataLayout.cpp
>
> Modified: llvm/trunk/lib/IR/DataLayout.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/IR/DataLayout.cpp?rev=223911&r1=223910&r2=223911&vi
> ew=diff
> ==========================================================================
> ====
> --- llvm/trunk/lib/IR/DataLayout.cpp (original)
> +++ llvm/trunk/lib/IR/DataLayout.cpp Tue Dec 9 20:36:41 2014
> @@ -199,6 +199,8 @@ static std::pair<StringRef, StringRef> s
> std::pair<StringRef, StringRef> Split = Str.split(Separator);
> if (Split.second.empty() && Split.first != Str)
> report_fatal_error("Trailing separator in datalayout string");
> + if (!Split.second.empty() && Split.first.empty())
> + report_fatal_error("Expected token before separator in datalayout
> string");
> return Split;
> }
>
> @@ -297,6 +299,9 @@ void DataLayout::parseSpecifier(StringRe
> "Sized aggregate specification in datalayout string");
>
> // ABI alignment.
> + if (Rest.empty())
> + report_fatal_error(
> + "Missing alignment specification in datalayout string");
> Split = split(Rest, ':');
> unsigned ABIAlign = inBytes(getInt(Tok));
>
> @@ -328,8 +333,12 @@ void DataLayout::parseSpecifier(StringRe
> break;
> }
> case 'm':
> - assert(Tok.empty());
> - assert(Rest.size() == 1);
> + if (!Tok.empty())
> + report_fatal_error("Unexpected trailing characters after mangling
> specifier in datalayout string");
> + if (Rest.empty())
> + report_fatal_error("Expected mangling specifier in datalayout
> string");
> + if (Rest.size() > 1)
> + report_fatal_error("Unknown mangling specifier in datalayout
> string");
> switch(Rest[0]) {
> default:
> report_fatal_error("Unknown mangling in datalayout string");
>
> Added: llvm/trunk/test/Assembler/invalid-datalayout10.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/Assembler/invalid-
> datalayout10.ll?rev=223911&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/test/Assembler/invalid-datalayout10.ll (added)
> +++ llvm/trunk/test/Assembler/invalid-datalayout10.ll Tue Dec 9 20:36:41
> 2014
> @@ -0,0 +1,3 @@
> +; RUN: not llvm-as < %s 2>&1 | FileCheck %s
> +target datalayout = "m"
> +; CHECK: Expected mangling specifier in datalayout string
>
> Added: llvm/trunk/test/Assembler/invalid-datalayout11.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/Assembler/invalid-
> datalayout11.ll?rev=223911&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/test/Assembler/invalid-datalayout11.ll (added)
> +++ llvm/trunk/test/Assembler/invalid-datalayout11.ll Tue Dec 9 20:36:41
> 2014
> @@ -0,0 +1,3 @@
> +; RUN: not llvm-as < %s 2>&1 | FileCheck %s
> +target datalayout = "m."
> +; CHECK: Unexpected trailing characters after mangling specifier in
> datalayout string
>
> Added: llvm/trunk/test/Assembler/invalid-datalayout12.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/Assembler/invalid-
> datalayout12.ll?rev=223911&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/test/Assembler/invalid-datalayout12.ll (added)
> +++ llvm/trunk/test/Assembler/invalid-datalayout12.ll Tue Dec 9 20:36:41
> 2014
> @@ -0,0 +1,3 @@
> +; RUN: not llvm-as < %s 2>&1 | FileCheck %s
> +target datalayout = "f"
> +; CHECK: Missing alignment specification in datalayout string
>
> Added: llvm/trunk/test/Assembler/invalid-datalayout13.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/Assembler/invalid-
> datalayout13.ll?rev=223911&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/test/Assembler/invalid-datalayout13.ll (added)
> +++ llvm/trunk/test/Assembler/invalid-datalayout13.ll Tue Dec 9 20:36:41
> 2014
> @@ -0,0 +1,3 @@
> +; RUN: not llvm-as < %s 2>&1 | FileCheck %s
> +target datalayout = ":32"
> +; CHECK: Expected token before separator in datalayout string
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list