Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-77

[MSVC 7.1] operator new doesn't throw std::bad_alloc on failure

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 4.1.2, 4.1.3, 4.1.4
    • 4.2.0
    • 18. Language Support
    • None
    • MSVC 7.1

    Description

      $ cat t.cpp && nmake t.exe && ./t
      #include <cassert>
      #include <new>

      #include <crtdbg.h>

      int main ()
      {
      _CrtSetReportMode (_CRT_WARN, _CRTDBG_MODE_DEBUG);
      _CrtSetReportMode (_CRT_ERROR, _CRTDBG_MODE_DEBUG);
      _CrtSetReportMode (_CRT_ASSERT, _CRTDBG_MODE_DEBUG);

      int success = 0;

      try

      { operator new ((unsigned long)-1024); }

      catch (std::bad_alloc&)

      { success = 1; }

      catch (...) { }

      assert (success);
      }

      Microsoft (R) Program Maintenance Utility Version 7.10.3077
      Copyright (C) Microsoft Corporation. All rights reserved.

      link -nologo /NODEFAULTLIB:msvcprtd /debug /LIBPATH:.\..\..\..\..\lib /OUT:t.exe t.obj testx15d_msvc_7_1.lib tlt15d_msvc_7_1.lib std15d_msvc_7_1.lib user32.lib
      LINK : LNK6004: t.exe not found or not built by the last incremental link; performing full link
      Assertion failed: success, file t.cpp, line 20

      This application has requested the Runtime to terminate it in an unusual way.
      Please contact the application's support team for more information.

      Attachments

        1. opnew.patch
          4 kB
          Farid Zaripov

        Issue Links

          Activity

            People

              farid Farid Zaripov
              sebor Martin Sebor
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: