mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 06:18:56 -04:00

Instead of suggesting " = 0" for "char c();", suggest " = '\0'", and similarly for other char types (wide, 16, and 32). Add tests for all these, and since this means testing such hints under C++0x, add tests for some untested C++0x hint cases in the existing code, including suggesting nullptr for pointer initialization. This sets up the initialization helper to provide better type fidelity that will be especially helpful for non-assignment cases (such as fixit-correcting NULL usage in function calls (eg: foo(char) + foo(NULL) => foo('\0') instead of the less informative foo(0))) llvm-svn: 153008
22 lines
879 B
C++
22 lines
879 B
C++
// RUN: %clang_cc1 -verify -x c++ -std=c++11 %s
|
|
// RUN: %clang_cc1 -fdiagnostics-parseable-fixits -x c++ -std=c++11 %s 2>&1 | FileCheck %s
|
|
|
|
struct X {
|
|
int i;
|
|
};
|
|
|
|
void func() {
|
|
// CHECK: fix-it:"{{.*}}":{10:6-10:8}:"{}"
|
|
X x(); // expected-warning {{function declaration}} expected-note{{replace parentheses with an initializer}}
|
|
|
|
typedef int *Ptr;
|
|
// CHECK: fix-it:"{{.*}}":{14:8-14:10}:" = nullptr"
|
|
Ptr p(); // expected-warning {{function declaration}} expected-note {{replace parentheses with an initializer}}
|
|
|
|
// CHECK: fix-it:"{{.*}}":{17:15-17:17}:" = u'\\0'"
|
|
char16_t u16(); // expected-warning {{function declaration}} expected-note {{replace parentheses with an initializer}}
|
|
|
|
// CHECK: fix-it:"{{.*}}":{20:15-20:17}:" = U'\\0'"
|
|
char32_t u32(); // expected-warning {{function declaration}} expected-note {{replace parentheses with an initializer}}
|
|
}
|