Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[formatters] Add a formatter for libstdc++ optional
Besides adding the formatter and the summary, this makes the libcxx tests also work for this case. This is the polished version of https://reviews.llvm.org/D114266, authored by Danil Stefaniuc. Differential Revision: https://reviews.llvm.org/D114403
- Loading branch information
1 parent
9cd7c53
commit e3dea5c
Showing
9 changed files
with
138 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 0 additions & 2 deletions
2
...ta-formatter-stl/libcxx/optional/Makefile → ...a-formatter-stl/generic/optional/Makefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,4 @@ | ||
CXX_SOURCES := main.cpp | ||
|
||
USE_LIBCPP := 1 | ||
|
||
CXXFLAGS_EXTRAS := -std=c++17 -fno-exceptions | ||
include Makefile.rules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 41 additions & 0 deletions
41
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/optional/main.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#include <cstdio> | ||
#include <string> | ||
#include <vector> | ||
|
||
// If we have libc++ 4.0 or greater we should have <optional> | ||
// According to libc++ C++1z status page | ||
// https://libcxx.llvm.org/cxx1z_status.html | ||
#if !defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 4000 | ||
#include <optional> | ||
#define HAVE_OPTIONAL 1 | ||
#else | ||
#define HAVE_OPTIONAL 0 | ||
#endif | ||
|
||
int main() { | ||
bool has_optional = HAVE_OPTIONAL; | ||
|
||
printf("%d\n", has_optional); // break here | ||
|
||
#if HAVE_OPTIONAL == 1 | ||
using int_vect = std::vector<int>; | ||
using optional_int = std::optional<int>; | ||
using optional_int_vect = std::optional<int_vect>; | ||
using optional_string = std::optional<std::string>; | ||
|
||
optional_int number_not_engaged; | ||
optional_int number_engaged = 42; | ||
|
||
printf("%d\n", *number_engaged); | ||
|
||
optional_int_vect numbers{{1, 2, 3, 4}}; | ||
|
||
printf("%d %d\n", numbers.value()[0], numbers.value()[1]); | ||
|
||
optional_string ostring = "hello"; | ||
|
||
printf("%s\n", ostring->c_str()); | ||
#endif | ||
|
||
return 0; // break here | ||
} |
42 changes: 0 additions & 42 deletions
42
lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/optional/main.cpp
This file was deleted.
Oops, something went wrong.