[Bug c++/94046] New: cast to __m256d in mask argument of avx2 float gather intrinsics

2020-03-05 Thread niklas at nolte dot dev
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94046

Bug ID: 94046
   Summary: cast to __m256d in mask argument of avx2 float gather
intrinsics
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: niklas at nolte dot dev
  Target Milestone: ---

I cannot call the _mm256_mask_i32gather_ps intrinsic with a mask argument that
is not implicitly convertible to __mm256d, only in -O0 mode.

Please correct me if i'm misunderstanding, but it seems like the cast to
__m256d for the mask argument is a mistake.

reproducer:
https://godbolt.org/z/wu4DmN

[Bug c++/94214] New: function lookup with overloaded operators accepts invalid

2020-03-18 Thread niklas at nolte dot dev
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94214

Bug ID: 94214
   Summary: function lookup with overloaded operators accepts
invalid
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: niklas at nolte dot dev
  Target Milestone: ---

Sample code:
```
#include 

template 
void blub(std::vector const& i) {
  -i;
  //getsize(i); //this also fails in gcc
}

int operator-(std::vector const& i) {
return i.size();
}

int getsize(std::vector const& i) {
return i.size();
}

int main() { blub(std::vector{1}); }
```

this shouldn't compile, it doesn't in clang..

See
- https://godbolt.org/z/hgGeH3

-
https://stackoverflow.com/questions/60740257/clang-vs-gcc-function-lookup-with-operator-overloads?noredirect=1#comment107466162_60740257
-
https://stackoverflow.com/questions/58793092/two-phase-function-template-compilation-not-only-adl-is-employed-in-the-2nd-p

[Bug c++/94214] function lookup with overloaded operators accepts invalid

2020-03-18 Thread niklas at nolte dot dev
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94214

--- Comment #2 from niklas at nolte dot dev ---
(In reply to Jonathan Wakely from comment #1)
> Looks like a dup of PR 51577

agreed

[Bug c++/97946] New: passing templated function without template argument

2020-11-23 Thread niklas at nolte dot dev via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97946

Bug ID: 97946
   Summary: passing templated function without template argument
   Product: gcc
   Version: 10.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: niklas at nolte dot dev
  Target Milestone: ---

The compiler accepts the following code.
`fun` without template arguments should not be accepted, should it?
```
template
void fun() {}

template
void higher_order_fun( const F & f) {
f();
}

int main () {
//higher_order_fun(fun<>); //works
higher_order_fun(fun);
}
```

The related stackoverflow question:

https://stackoverflow.com/questions/64872397/passing-function-template-prototype-as-argument