[llvm] r188524 - Fixing a warning about control reaching the end of a non-void function.

Matt Beaumont-Gay matthewbg at google.com
Fri Aug 16 10:35:54 PDT 2013


On Thu, Aug 15, 2013 at 7:50 PM, Aaron Ballman <aaron at aaronballman.com> wrote:
> On Thu, Aug 15, 2013 at 10:46 PM, Matt Beaumont-Gay
> <matthewbg at google.com> wrote:
>> On Thu, Aug 15, 2013 at 6:43 PM, Aaron Ballman <aaron at aaronballman.com> wrote:
>>> Author: aaronballman
>>> Date: Thu Aug 15 20:43:31 2013
>>> New Revision: 188524
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=188524&view=rev
>>> Log:
>>> Fixing a warning about control reaching the end of a non-void function.
>>>
>>> Modified:
>>>     llvm/trunk/utils/TableGen/CodeGenInstruction.cpp
>>>
>>> Modified: llvm/trunk/utils/TableGen/CodeGenInstruction.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenInstruction.cpp?rev=188524&r1=188523&r2=188524&view=diff
>>> ==============================================================================
>>> --- llvm/trunk/utils/TableGen/CodeGenInstruction.cpp (original)
>>> +++ llvm/trunk/utils/TableGen/CodeGenInstruction.cpp Thu Aug 15 20:43:31 2013
>>> @@ -192,6 +192,7 @@ CGIOperandList::ParseOperandName(const s
>>>
>>>    // Otherwise, didn't find it!
>>>    PrintFatalError(TheDef->getName() + ": unknown suboperand name in '" + Op + "'");
>>> +  return std::make_pair(0U, 0U);
>>
>> PrintFatalError is marked noreturn; what compiler complained about this?
>
> clang-x86_64-darwin11-self-mingw32

>From Compiler.h:

#ifdef __GNUC__
#define LLVM_ATTRIBUTE_NORETURN __attribute__((noreturn))
#elif defined(_MSC_VER)
#define LLVM_ATTRIBUTE_NORETURN __declspec(noreturn)
#else
#define LLVM_ATTRIBUTE_NORETURN
#endif

>From InitPreprocessor.cpp:

  if (!LangOpts.MicrosoftMode) {
    // Currently claim to be compatible with GCC 4.2.1-5621, but only if we're
    // not compiling for MSVC compatibility
    Builder.defineMacro("__GNUC_MINOR__", "2");
    Builder.defineMacro("__GNUC_PATCHLEVEL__", "1");
    Builder.defineMacro("__GNUC__", "4");
    Builder.defineMacro("__GXX_ABI_VERSION", "1002");
  }

Maybe the first condition for LLVM_ATTRIBUTE_NORETURN should be "#if
defined(__GNUC__) || defined(__clang__)"?



More information about the llvm-commits mailing list