[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#961011: g++-9: internal compiler error: in asan_expand_mark_ifn, at asan.c:3194



Package: g++-9
Version: 9.3.0-12
Severity: normal

Tested with g++10 and g++ from gcc-snapshot 1:20200507-3

$ g++ -Og -g -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -fopenmp -o clusthash.cpp.o -c clusthash_prep.cpp

during GIMPLE pass: sanopt
clusthash_prep.cpp: In function '_Z1sv._omp_fn.0':
clusthash_prep.cpp:41:9: internal compiler error: in asan_expand_mark_ifn, at asan.c:3194
   41 | #pragma omp parallel
      |         ^~~
0x149b9425ce0a __libc_start_main
	../csu/libc-start.c:308

Attached is the reduced example.

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (650, 'testing'), (600, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.6.0-1-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages g++-9 depends on:
ii  gcc-9            9.3.0-12
ii  gcc-9-base       9.3.0-12
ii  libc6            2.30-8
ii  libgmp10         2:6.2.0+dfsg-4
ii  libisl22         0.22.1-1
ii  libmpc3          1.1.0-1
ii  libmpfr6         4.0.2-1
ii  libstdc++-9-dev  9.3.0-12
ii  zlib1g           1:1.2.11.dfsg-2

g++-9 recommends no packages.

Versions of packages g++-9 suggests:
pn  g++-9-multilib  <none>
ii  gcc-9-doc       9.3.0-1

-- no debconf information
template <typename, template <typename> class> using a = int;
struct f {
  template <typename c> using i = typename c::d;
};
struct j : f {
  using d = a<int, i>;
};
class l {
  struct g {
    g(j::d &&);
  } h;

public:
  l() : h(0) {}
};
class m {
public:
  int ae;
};
class n {
public:
  n(long);
  void o();
};
class p {
public:
  p(char, char, int, int);
  void m_fn2();
  static int k;
};
class q {
public:
  q(int);
  void r();
};
void s() {
  m a;
  p b(0, 0, a.ae, p::k);
  q c(5);
  n d(0);
#pragma omp parallel
  {
    l e;
    d.o();
    b.m_fn2();
    goto an;
  an:
    c.r();
  }
}

Reply to: