5chmidti wrote:

> Another interesting case, it seems somehow multiple constexprs got added, ex:
> 
> ```c++
> template <typename CellType>
> constexpr constexpr constexpr constexpr constexpr constexpr constexpr 
> constexpr int numberOfSidesOfDimension(int dimension);
> ```
> 
> This actually compiles, though with a `-Wduplicate-decl-specifier` warning.

I failed to reproduce this with

```c++
template <typename T>
static T forwardDeclared();

template <typename T>
static T forwardDeclared() { return T{}; }

static void useForwardDeclared() {
    forwardDeclared<int>() + forwardDeclared<double>() + 
forwardDeclared<char>();
}
```

```diff
 template <typename T>                                                          
                                                                              
-static T forwardDeclared();                                
+constexpr static T forwardDeclared();                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                        
 template <typename T>                                                      
-static T forwardDeclared() { return T{}; }
+constexpr static T forwardDeclared() { return T{}; }                           
                                                                                
                                                                                
                                                                            
                                                                  
 static void useForwardDeclared() {                                             
                                                                                
                                                                                
                                                                            
     forwardDeclared<int>() + forwardDeclared<double>() + 
forwardDeclared<char>();  
```

I had seen this one as well, but it was already fixed in the initial commit, at 
least I thought.

https://github.com/llvm/llvm-project/pull/146553
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to