With this change, most 'g' options are rejected by CompilerInvocation.
They remain only as Driver options. The new way to request debug info
from cc1 is with "-debug-info-kind={line-tables-only|limited|standalone}"
and "-dwarf-version={2|3|4}". In the absence of a command-line option
to specify Dwarf version, the Toolchain decides it, rather than placing
Toolchain-specific logic in CompilerInvocation.
Also fix a bug in the Windows compatibility argument parsing
in which the "rightmost argument wins" principle failed.
Differential Revision: http://reviews.llvm.org/D13221
llvm-svn: 249655
38 lines
740 B
C++
38 lines
740 B
C++
// XFAIL: hexagon
|
|
// RUN: %clang_cc1 %s -std=c++11 -emit-llvm-only
|
|
// RUN: %clang_cc1 -emit-obj -o %t -debug-info-kind=line-tables-only -std=c++11 %s
|
|
// CHECK that we don't crash.
|
|
|
|
// PR11676's example is ill-formed:
|
|
/*
|
|
union _XEvent {
|
|
};
|
|
void ProcessEvent() {
|
|
_XEvent pluginEvent = _XEvent();
|
|
}
|
|
*/
|
|
|
|
// Example from PR11665:
|
|
void f() {
|
|
union U { int field; } u = U();
|
|
(void)U().field;
|
|
}
|
|
|
|
namespace PR17476 {
|
|
struct string {
|
|
string(const char *__s);
|
|
string &operator+=(const string &__str);
|
|
};
|
|
|
|
template <class ELFT> void finalizeDefaultAtomValues() {
|
|
auto startEnd = [&](const char * sym)->void {
|
|
string start("__");
|
|
start += sym;
|
|
}
|
|
;
|
|
startEnd("preinit_array");
|
|
}
|
|
|
|
void f() { finalizeDefaultAtomValues<int>(); }
|
|
}
|