https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77804

            Bug ID: 77804
           Summary: Internal compiler error on incorrect initialization of
                    new-d array
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vgheorgh at gmail dot com
  Target Milestone: ---

The code below

#include <new>

int main()
{
    char buf[256];
    std::size_t n = 10;
    int* p = new (buf) (int[n]);  // incorrect way, parenthesis by mistake
    // int* p = new (buf) int[n]; // correct way
}

produces an internal compile error in gcc versions 6 or later. It compiles fine
(although with an warning: non-constant array new length must be specified
without parentheses around the type-id [-Wvla].

Reply via email to