Sterling-Augustine wrote:

Yes it does. Here is a reduced repro:

```
augustine:~/crdc $ cat repro.ii
extern void* GetMem();

class MyFileMod {
 public:
  MyFileMod(int x, int y) {}
  void SetNext() {}
  friend class Foo;
 private:
  static void * operator new(unsigned long size) { return GetMem(); }
  static void * operator new[](unsigned long size) { return GetMem() ; }
  static void * operator new(unsigned long, void *p) { return p ; }
  static void * operator new[](unsigned long, void *p) { return p ; }
  static void operator delete(void *p) {  }
  static void operator delete[](void *p) {  }
  static void operator delete(void*, void*) {}
  static void operator delete[](void*, void*) {}
};

MyFileMod* f;

class Foo {
 public:
void Bar() {
            MyFileMod *new_section = new MyFileMod(0, 0) ;
            new_section->SetNext() ;
}
};
augustine:~/crdc $ ~/llvm/build/bin/clang++ repro.ii -std=gnu++20 
-Wuninitialized -Werror -c
repro.ii:25:13: error: variable 'new_section' is uninitialized when used here 
[-Werror,-Wuninitialized]
   25 |             new_section->SetNext() ;
      |             ^~~~~~~~~~~
repro.ii:24:35: note: initialize the variable 'new_section' to silence this 
warning
   24 |             MyFileMod *new_section = new MyFileMod(0, 0) ;
      |                                   ^
      |                                    = nullptr
1 error generated.
augustine:~/crdc $ 
```

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

Reply via email to