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

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Even this reduced testcase works:

#  include <sys/syscall.h>
#  include <pthread.h>
#  include <unistd.h>
#include <cstring>
#include <cstdlib>

namespace Qt {
enum Initialization {} Uninitialized;
}
struct QArrayData {
  int size;
  char *d;
};
struct QByteArray {
    [[gnu::noipa]]
  QByteArray(int a, Qt::Initialization)  {d.size = a; d.d =
(char*)__builtin_malloc(a); memset(d.d, 0, a);}
  ~QByteArray();
  int size() const;
  QArrayData d;
    [[gnu::noipa]]
  char *data() {return d.d;}
};
QByteArray::~QByteArray() {}
    [[gnu::noipa]]
int QByteArray::size() const { return d.size; }
int
main() {
    char *path = (char*)malloc(1024);
  QByteArray buf(256, Qt::Uninitialized); 
     ssize_t len = ::readlink(path, buf.data(), buf.size());

  return 0;
}

Reply via email to