[Bug c++/63356] Compilation failure where clang does not have problems

2015-09-23 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Manuel López-Ibáñez  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||manu at gcc dot gnu.org
  Known to work||6.0
 Resolution|--- |FIXED

--- Comment #17 from Manuel López-Ibáñez  ---
(In reply to fiesh from comment #9)
> Ever so little simplified:

All three reduced testcases are working in GCC 6.0. I'm closing this as FIXED.
Feel free to reopen it if required.

[Bug c++/63356] Compilation failure where clang does not have problems

2015-06-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.8.5   |---


[Bug c++/63356] Compilation failure where clang does not have problems

2015-03-19 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #16 from Jason Merrill jason at gcc dot gnu.org ---
Taking this bug out of WAITING; I don't know why it was there.


[Bug c++/63356] Compilation failure where clang does not have problems

2015-03-17 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #15 from fiesh at zefix dot tv ---
Boost 1.58.0 has a workaround by making one function explicit.
(https://github.com/boostorg/polygon/commit/634aa3de29d63dcf02a478ca2b5045c5e9ccb7e0)

Since this means the bug becomes irrelevant for me, I suppose the number of
people who do find the bug relevant has decreased to zero. ;)


[Bug c++/63356] Compilation failure where clang does not have problems

2015-01-30 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #14 from fiesh at zefix dot tv ---
Bounty: EUR 150

I'd like to try something new and place a bounty on this issue.  In order to
collect it, you have to provide a patch that is accepted into 4.9 and 5.  You
also need to be able to write a bill with explicit VAT (we are based in
Germany).  Alternatively, I'll donate the money to any charitable use of your
choice, again subject to requiring a receipt from the charity receiving it.


[Bug c++/63356] Compilation failure where clang does not have problems

2015-01-11 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #13 from fiesh at zefix dot tv ---
Are there any news on this bug?  At least for us, this keeps production code
from being able to work with any boost 1.55, which is becoming an increasingly
bigger issue.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-12-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.8.4   |4.8.5

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org ---
GCC 4.8.4 has been released.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-25 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.8/4.9/5 Regression]  |Compilation failure where
   |Compilation failure where   |clang does not have
   |clang does not have |problems
   |problems|

--- Comment #11 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to Richard Biener from comment #10)
 What version of GCC works?  That is, how is this a regression?

You're right it isn't.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-09-24
 CC||trippels at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
I cannot reproduce the issue. Please attach a per-processed testcase.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
You should have read https://gcc.gnu.org/bugs/ and attached preprocessed code
anyway, not everyone has Boost 1.56 already installed.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #3 from fiesh at zefix dot tv ---
I wanted to, but the problem is that the ii file is 2.7MB, more than the
maximum allowed file size of 1000KB.  Should I upload it to a different site?

Also I just realized that the problem only occurs with -std=c++11.  (Clang
works with or without.)


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to fiesh from comment #3)
 I wanted to, but the problem is that the ii file is 2.7MB, more than the
 maximum allowed file size of 1000KB.  Should I upload it to a different site?
 
 Also I just realized that the problem only occurs with -std=c++11.  (Clang
 works with or without.)

You can use compression. But no need, because I can now reproduce the issue
with -std=c++11.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #5 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 33545
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33545action=edit
preprocessed testcase

Here's the unreduced testcase. I cannot reduce it, because
clang doesn't handle all the __builtin_ia32_bsrsi, etc. intrinsics.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #6 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
This is what C-reduce came up with:

markus@x4 ~ % cat boost.ii
template typename _Tp
struct integral_constant {
  static constexpr _Tp value = 0;
};
template typename...
struct __and_;
template typename _B1
struct __and__B1 : _B1 {};
template typename _Tp
_Tp declval();
template typename _From, typename _To
struct __is_convertible_helper {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static integral_constantint __test(int);
  typedef decltype(__test_From, _To(0)) type;
};
template typename _From, typename _To
struct is_convertible : __is_convertible_helper_From, _To::type {};
template int
struct Trans_NS_std_enable_if {};
template class _T1, class
struct pair {
  _T1 first;
  template class _U1, class _U2,
class = typename Trans_NS_std_enable_if
__and_is_convertible_U1, _T1::value::type
  pair(pair_U1, _U2);
  template class _U2
  pair(_T1 __x, _U2)
  : first(__x) {}
};
class point_data;
class vector {
 public:
  void push_back(pairpairpairpoint_data, point_data, int, int *);
};
template typename _Key
class map {};
class point_data {
 public:
  template typename PointType
  point_data(PointType);
  mapint processEvent__iter;
  vector processEvent__counts_from_scanline;
  template class cT, class iT
  void processEvent_(cT, iT, iT) {
processEvent__counts_from_scanline.push_back(
pairpairpairpoint_data, point_data, int, int *(
pairpairpoint_data, point_data, int(
pairpoint_data, point_data(0, 0), processEvent__iter),
0));
  }
  void get_dispatch() { get_fracture(0, 0, 0); }
  template typename output_container, typename concept_type
  void get_fracture(output_container, int, concept_type) {
processEvent_(0, 0, 0);
  }
};

markus@x4 ~ % icpc -std=c++11 -c boost.ii
markus@x4 ~ % clang++ -std=c++11 -c boost.ii
markus@x4 ~ % g++ -std=c++11 -c boost.ii
boost.ii: In instantiation of ‘struct
__is_convertible_helperpairpairpoint_data, point_data, int,
pairpoint_data, point_data ’:
boost.ii:19:8:   required from ‘struct is_convertiblepairpairpoint_data,
point_data, int, pairpoint_data, point_data ’
boost.ii:8:8:   required from ‘struct
__and_is_convertiblepairpairpoint_data, point_data, int, pairpoint_data,
point_data  ’
boost.ii:52:15:   recursively required by substitution of ‘templateclass _U2
pair_T1, template-parameter-1-2 ::pair(_T1, _U2) [with _U2 = missing]’
boost.ii:52:15:   required from ‘void point_data::processEvent_(cT, iT, iT)
[with cT = int; iT = int]’
boost.ii:57:26:   required from ‘void
point_data::get_fracture(output_container, int, concept_type) [with
output_container = int; concept_type = int]’
boost.ii:54:45:   required from here
boost.ii:16:26: error: no matching function for call to
‘__is_convertible_helperpairpairpoint_data, point_data, int,
pairpoint_data, point_data ::__test(int)’
   typedef decltype(__test_From, _To(0)) type;
  ^
boost.ii:16:26: note: candidate is:
boost.ii:15:33: note: templateclass _From1, class _To1, class static
integral_constantint __is_convertible_helper_From, _To::__test(int) [with
_From1 = _From1; _To1 = _To1; template-parameter-2-3 =
template-parameter-1-3; _From = pairpairpoint_data, point_data, int; _To
= pairpoint_data, point_data]
   static integral_constantint __test(int);
 ^
boost.ii:15:33: note:   template argument deduction/substitution failed:
boost.ii:14:13: error: no matching function for call to ‘pairpoint_data,
point_data::pair(pairpairpoint_data, point_data, int)’
 typename = decltype(_To1(declval_From1()))
 ^
boost.ii:14:13: note: candidates are:
boost.ii:30:3: note: templateclass _U2 pair_T1, template-parameter-1-2
::pair(_T1, _U2)
   pair(_T1 __x, _U2)
   ^
boost.ii:30:3: note:   template argument deduction/substitution failed:
boost.ii:14:13: note:   candidate expects 2 arguments, 1 provided
 typename = decltype(_To1(declval_From1()))
 ^
boost.ii:28:3: note: templateclass _U1, class _U2, class pair_T1,
template-parameter-1-2 ::pair(pair_U1, _U2)
   pair(pair_U1, _U2);
   ^
boost.ii:28:3: note:   template argument deduction/substitution failed:
boost.ii:26:13: error: no type named ‘type’ in ‘struct
Trans_NS_std_enable_if0’
 class = typename Trans_NS_std_enable_if
 ^
boost.ii:23:8: note: constexpr pairpoint_data, point_data::pair(const
pairpoint_data, point_data)
 struct pair {
^
boost.ii:23:8: note:   no known conversion for argument 1 from
‘pairpairpoint_data, point_data, int’ to ‘const pairpoint_data,
point_data’
boost.ii:23:8: note: constexpr pairpoint_data,
point_data::pair(pairpoint_data, point_data)
boost.ii:23:8: note:   no known conversion for argument 1 from
‘pairpairpoint_data, point_data, int’ to ‘pairpoint_data, point_data’
boost.ii: In 

[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #7 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Or a bit more compact and obfuscated:

template typename _Tp
struct A {
  static constexpr _Tp value = 0;
};
template typename...
struct B;
template typename _B1
struct B_B1 : _B1 {};
template typename _Tp
_Tp declval();
template typename _From, typename _To
struct C {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static Aint __test(int);
  typedef decltype(__test_From, _To(0)) type;
};
template typename _From, typename _To
struct I : C_From, _To::type {};
template int
struct D {};
template class _T1, class
struct F {
  _T1 first;
  template class _U1, class _U2,
class = typename DBI_U1, _T1::value::type
  F(F_U1, _U2);
  template class _U2
  F(_T1 p1, _U2)
  : first(p1) {}
};
class G;
class H {
 public:
  void push_back(FFFG, G, int, int *);
};
class G {
 public:
  template typename PointType
  G(PointType);
  H processEvent__counts_from_scanline;
  template class cT, class iT
  void processEvent_(cT, iT, iT) {
processEvent__counts_from_scanline.push_back(
FFFG, G, int, int *(FFG, G, int(FG, G(0, 0), 0), 0));
  }
  void get_dispatch() { get_fracture(0, 0, 0); }
  template typename output_container, typename concept_type
  void get_fracture(output_container, int, concept_type) {
processEvent_(0, 0, 0);
  }
};


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #8 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
template typename _Tp
struct A {
  static constexpr _Tp value = 0;
};
template typename...
struct B;
template typename _B1
struct B_B1 : _B1 {};
template typename _Tp
_Tp declval();
template typename _From, typename _To
struct C {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static Aint __test(int);
  typedef decltype(__test_From, _To(0)) type;
};
template typename _From, typename _To
struct I : C_From, _To::type {};
template int
struct D {};
template class _T1, class
struct F {
  _T1 first;
  template class _U1, class _U2,
class = typename DBI_U1, _T1::value::type
  F(F_U1, _U2);
  template class _U2
  F(_T1 p1, _U2)
  : first(p1) {}
};
class G;
class H {
 public:
  void push_back(FFFG, G, int, int *);
};
class G {
 public:
  template typename PointType
  G(PointType);
  H processEvent__counts_from_scanline;
  void processEvent_() {
processEvent__counts_from_scanline.push_back(
FFFG, G, int, int *(FFG, G, int(FG, G(0, 0), 0), 0));
  }
};


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #9 from fiesh at zefix dot tv ---
Ever so little simplified:

struct A {};

template typename _B1
struct B : _B1 {};

template typename _Tp
_Tp declval();

template typename _From, typename _To
struct C {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static A __test(int);
  typedef decltype(__test_From, _To(0)) type;
};

template typename _From, typename _To
struct I : C_From, _To::type {};

template int
struct D {};

template class _T1, class
struct F {
  _T1 first;
  template class _U1, class _U2,
class = typename DBI_U1, _T1::value::type
  F(F_U1, _U2);
  template class _U2
  F(_T1 p1, _U2)
  : first(p1) {}
};

class G;

class H {
 public:
  void push_back(FFFG, G, int, int *);
};

class G {
 public:
  template typename PointType
  G(PointType);
  H processEvent__counts_from_scanline;
  void processEvent_() {
processEvent__counts_from_scanline.push_back(
FFFG, G, int, int *(FFG, G, int(FG, G(0, 0), 0), 0));
  }
};