| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| |
| | |
* cc-msvc-target:
test: Run cc-msvc-builtin-1923 test with suitable target triple
Detect: Add MSVC target triple component
|
| |
| |
| |
| | |
When `_MSC_VER` is among compiler predefines, the target ABI is MSVC.
|
| | |
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
MSVC tools 14.23 and above declare `__builtin_assume_aligned` in
`intrin0.h` with a signature incompatible with Clang's builtin. It is
guarded by `!defined(__clang__)` but that breaks when we simulate MSVC's
preprocessor. Rename the builtin via preprocessing to avoid the
conflict.
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Clang 9 introduced a `clang-cpp` shared library that we can optionally
use instead of linking to the static libraries.
|
|/ |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Revise the logic from commit 60dc8284 (Version: Update version scheme to
distinguish release and dev versions, 2019-04-11, v0.2.0~2) to drop the
`-<count>` portion of the version number. This makes the version string
the same for versions built from a Git source tree and from a tarball.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Update the approach from commit 60dc8284 (Version: Update version scheme
to distinguish release and dev versions, 2019-04-11, v0.2.0~2) to prefer
`export-subst` information. This will allow exported source trees to be
imported into unrelated Git repositories while still using the original
upstream CastXML commit information.
|
| | |
|
| |
| |
| |
| |
| |
| | |
The `llvm::StringRef` type now requires explicit conversion to
`std::string`. Such explicit conversions still work with older
versions of LLVM/Clang too.
|
| |
| |
| |
| |
| | |
Extend the `--castxml-output=1` format to support decltype.
Create a dump node for the underlying type.
|
| |
| |
| |
| |
| |
| | |
Clang renamed `clang/AST/TypeNodes.{def => inc}` and replaced the
`createDriverOptTable` factory with a singleton returned by
`getDriverOptTable`.
|
| |
| |
| |
| |
| |
| | |
LLVM now compiles as C++14. It does not provide `llvm::make_unique`.
The `clang::CompilerInvocation::CreateFromArgs` signature now accepts an
`ArrayRef` for the argument range instead of iterators.
|
| |
| |
| |
| |
| | |
Adapt our `target_link_libraries` call based on the version of LLVM
to account for policy `CMP0023` NEW behavior.
|
| | |
|
| |
| |
| |
| | |
Fixes: #94
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| |
| | |
* ppc64:
Detect: Drop detected predefined macros conflicting with Clang's
Detect: Fix GNU builtin include directory detection on ppc64
|
| |
| |
| |
| |
| |
| | |
Extend the filtering added by commit 1cf66488 (Detect: Drop detected
predefined macros starting in '__has', 2015-02-04, v0.2.0~199) to cover
more Clang builtin macros. In particular, cover builtins on ppc64.
|
| |
| |
| |
| |
| | |
There is no `emmintrin.h` header for this architecture, so use
`altivec.h` instead.
|
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
Use the format `<major>.<minor>.<patch>[-rc<n>][-<id>]` for release
versions and `<major>.<minor>.<date>[-<id>]` for development versions.
Assume we will identify exact release versions with a `v<ver>` tag
on a commit with subject `CastXML <ver>`. Aadd an `-<id>` suffix to
versions that are not exact release commits.
|
|
|
|
|
|
|
|
| |
Provide `__castxml_{major,minor,patch}__`. Re-purpose `__castxml__` to
be for comparison with a `__castxml_check()` helper. Leave the actual
encoding of the components unspecified. Ensure the integer version
value of the encoding is larger than the only value of `1000` that
`__castxml__` had previously.
|
|
|
|
|
|
|
|
|
| |
Extend the `--castxml-output=1` format to support the nullptr type.
The name of the type is `decltype(nullptr)`. Recognize types named
exactly this way (as a literal) and treat them as a FundamentalType.
This gives the `std::nullptr_t` typedef a meaningful representation even
without full decltype support. Leave deeper nullptr-typed expressions
like `decltype((nullptr))` unchanged.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 6.0.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|
|
|
|
|
|
| |
Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before. Then revise the style to
indent preprocessor directives (a feature new since 3.8).
|
|
|
|
|
|
|
|
|
|
| |
Since commit 9c91919574 (cmake: work with LLVM_LINK_LLVM_DYLIB,
2019-01-17) our `llvm_libs` variable is a list of LLVM components rather
than a list of raw library names. The `version.lib` library is not a
LLVM component. Fortunately we can simply drop it because LLVM now
computes the proper list of libraries for its components.
Fixes: #133
|
|
|
|
| |
Support linking against the shared version of LLVM libraries.
|
|
|
|
|
| |
LLVM/clang commit r345637 (Remove the ObjC1/ObjC2 distinction from
clang, 2018-10-30) changed the language options for Objective C.
|
|
|
|
|
|
|
|
|
|
|
| |
LLVM/Clang commit r334518 (Refactor ExecuteAndWait to take StringRefs,
2018-06-12) changed the signature of `ExecuteAndWait`. Update our call.
LLVM/Clang commit r330216 (Rename sys::Process::GetArgumentVector ->
sys::windows::GetCommandLineArguments, 2018-04-17) removed the
`GetArgumentVector` API we were using. Instead use `InitLLVM` to get
proper command-line arguments as was done for Clang by LLVM/Clang
commit r330067 (Use InitLLVM in clang as well, 2018-04-13).
|
| |
|
|
|
|
|
|
|
|
|
| |
Some types decay when used in function parameters (e.g. arrays become
pointers). When this occurs, add an `original_type` attribute to
reference the original type without decay.
Issue: #96
Inspired-by: Todd Martin (todoooo on github)
|
|
|
|
|
|
|
|
|
|
|
| |
The builtin is used by the GNU type_traits header in modes aware of
C++17, so we need to provide it in CastXML. LLVM/Clang SVN r316518
(implement __has_unique_object_representations, 2017-10-24), in
development of Clang 6, added this GNU builtin. For older versions of
LLVM/Clang, provide a minimum implementation that at least allows
`type_traits` to parse.
Fixes: #98
|
|
|
|
|
|
|
|
|
| |
Since LLVM/Clang SVN r313155 (Convenience/safety fix for
llvm::sys::Execute(And|No)Wait, 2017-09-13) the signature of
`ExecuteAndWait` uses `Optional` instead of raw pointers for optional
redirections.
Also document support for LLVM/Clang 5.0 in our README.
|
| |
|
|
|
|
|
|
|
| |
Updates to VS 2015 and VS 2017 added support for `-std:` flags
specifying the language standard level for MSVC. The level is reported
in the `_MSVC_LANG` preprocessor definition instead of `__cplusplus`.
Detect MSVC standard C++ level from `_MSVC_LANG`.
|
|
|
|
| |
Fixes: #92
|
|
|
|
|
|
|
|
| |
Anonymous struct and union types may have constructors and destructors
that are also anonymous. Generate `name=""` in such cases because
clients expect these function-like elements to have names as gccxml did.
Issue: #89
|