Commit Graph

923 Commits

Author SHA1 Message Date
Matthias Moulin
0a78d8ea3c
Added std::exchange (C++14) to make the intent more explicit 2019-10-07 21:49:50 +02:00
Jordan Maples [MSFT]
02d1051fdd
Merge pull request #814 from sizmailov/fix_typos
Fix typos in gsl/pointers
2019-10-06 14:39:57 -07:00
Sergei Izmailov
275e0176c0 Fix typos in gsl/pointers 2019-10-06 19:20:15 +03:00
Jordan Maples
4b289d4cf0 lack of nl for bounds_test 2019-10-04 14:15:24 -07:00
Jordan Maples
6ff4a5287d accidentally commented out pragma 2019-10-04 14:13:54 -07:00
Jordan Maples
2b8f7aea32 adding clang/gcc suppression of the deprecation warnings. 2019-10-04 12:38:55 -07:00
Jordan Maples
7adf7eb6fe new messages 2019-10-03 17:52:49 -07:00
Jordan Maples
5e4463a7c1 removing function deprecation, adding additional class / struct deprecations 2019-10-03 15:47:25 -07:00
Jordan Maples [MSFT]
10ce5b634f
Merge pull request #812 from JordanMaples/dev/jomaples/typo_fixes
Fixing typo "Guideline" as "Guidelines"
2019-10-03 09:37:41 -07:00
Jordan Maples
eb995b3671 deprecating strided_span 2019-10-02 16:17:46 -07:00
Jordan Maples
b630dfe36a Guideline -> Guidelines
fixing issue as reported in issue #746
2019-10-02 15:42:40 -07:00
Jordan Maples
e026971c03 deprecation, removing cassert 2019-10-02 15:40:15 -07:00
Jordan Maples
bbeb0bdc91 initial deprecation of multi_span and strided_span 2019-09-28 12:54:18 -07:00
Jordan Maples [MSFT]
23066c829f
Update README.md 2019-09-04 15:10:14 -07:00
Jordan Maples [MSFT]
a454d295ed
Merge pull request #803 from B1Z0N/master
Fixed memory leaks and out of bound access
2019-09-04 14:04:47 -07:00
B1Z0N
ba9af38494 Merge branch 'master' of https://github.com/B1Z0N/GSL 2019-09-01 00:38:10 +03:00
B1Z0N
d5382a293b Fixed memory leaks 2019-09-01 00:36:13 +03:00
B1Z0N
787e7ef616 Thanks to @stayprivates fixed out of bounds access in "TestNotNullostream" 2019-09-01 00:35:04 +03:00
Jordan Maples [MSFT]
1046c9d247
Merge pull request #1 from microsoft/master
updating from root
2019-08-30 12:37:36 -07:00
Jordan Maples [MSFT]
b576cc6ce3
Merge pull request #769 from jack17529/patch-1
Update usage of difference_type in span
2019-08-15 14:49:12 -07:00
Jordan Maples [MSFT]
2ce3177ebd
Merge pull request #800 from eyalroz/master
Fixes #798 : Dropping inclusion of `gsl/pointers` in `string_span`
2019-08-15 14:42:07 -07:00
Johel Ernesto Guerrero Peña
cee1929de7 Fix GNUC typo (#780)
Resolves #779
2019-08-14 12:56:53 -07:00
beinhaerter
1d48188de9 Fixed check if std::byte is available (#764)
The check for std::byte existance fails on gcc 8.2. According to https://en.cppreference.com/w/cpp/utility/feature_test it is necessary to `#include <cstddef>` before checking `__cpp_lib_byte`.
2019-08-14 12:40:35 -07:00
Eyal Rozenberg
b05a4464b9 Fixes #798 : Dropped inclusion of gsl/pointers in string_span. 2019-08-05 13:16:42 +03:00
NN
1212beae77 Add Visual Studio 2019 image for tests (#787)
* Add Visual Studio 2019 image for tests

Refer to https://github.com/appveyor/ci/issues/2907
VS2019 is enabled per request.

* Use CMake 3.14

* Fix CMake output directory

* trigger build

* Trigger build
2019-06-12 21:27:49 -07:00
Ian Taylor
66809c6852 make TypeListIndexer constexpr (#733) 2019-06-06 14:16:08 -07:00
Hannes Steffenhagen
0551cad467 Merge branch 'master' into hunterization 2019-05-09 18:09:21 +01:00
Fei Sun
b74b286d5e add value_type size_type for string_span (#727) 2019-04-11 10:40:02 -07:00
JACK_1729
2a1ef25406
Update span
About my Issue - https://github.com/Microsoft/GSL/issues/765
2019-02-20 20:25:50 +05:30
Anna Gringauze
7d78b743e4
added clang7.0 to Travis configuration and README (#763) 2019-01-16 19:58:38 -08:00
Anna Gringauze
6418b5f4de
Clang cl (#762)
* Added c++17 test configurations for clang5.0 and clang6.0

* Fix #739 correct cppcorecheck warnings for clang-cl

* Add clang-cl  configurations

* Corrections Appveyor;
Temporarily disable msvc compilation for faster testing (#741)

* Add path to clang-cl.exe (#741)

* Escape backslash in path (#741)

* Update vcpkg (#741)

* Check vcpkg version; try without building vcpkg; use latest clang-cl from path (#741)

* Fix blocks in ps script (#741)

* Try accessing APPVEYOR_BUILD_FOLDER variable (#471)

* Update span size() bug confirmation test for GCC 6.5 (#741)

* MSVC flags to Clang-cl; disable c++98-compat and undefined macro warnings (#741)

* Suppress clang warning on tests (missing-prototypes) (#741)

* Fix clang warning -Wnewline-eof (#741)

* Fix clang warning -Wdouble-promotion (#741)

* Set linker explicitly

* Clean condition statement

* For Clang, fallback to the AppVeyor installed version of CMake

* Fix clang warning -Wmissing-variable-declarations

* Fallback to the MSVC linker until vcpkg has been updated

* Revert "Fallback to the MSVC linker until vcpkg has been updated"

This reverts commit 7263f3289e.

* Fix clang warning -Wunused-member-function

* Fix clang warning -Wmissing-noreturn

* Fix clang warning -Winvalid-noreturn on Windows

* Add macro block end comment on large #if blocks

* Workaround: fallback to mscv link.exe

* Workaround: get msvc paths into PowerShell through intermediate file

* Workaround: fix, remove "PATH=" from text

* Workaround: try with full-path; and return user PATH

* Workaround: fix, escape backslashes

* Revert all since "Workaround: fallback to mscv link.exe" did not work on AppVeyor

This reverts the commits:
bda3d6a428
97062933ac
0f4fb04bac
1b0c19afd1
a5739ea5f0

* Suppress output of git pull; remove vcpkg from cache

* Re-enable AppVeyor builds for all platforms

* Correct typo

Co-Authored-By: Farwaykorse <Farwaykorse@users.noreply.github.com>

* Add Clang-cl 7.0.0 to the supported platforms

* Revert "Fix clang warning -Wunused-member-function"

This reverts commit 6fe1a42035.

* Fix or locally suppress clang warning -Wunused-member-function

* format touched code and correct comment

* git pull --quiet

* fix logic error in workaround

* fix missing bracket

* Suppress output of mkdir

* Replace MSBuild with Ninja

* Suppress output of 7z

* Add architecture flags for Clang

* Drop workaround for lld-link

* 7-zip Overwrite and Alternative output suppression without suppressing errors

Replaces 3c1c0794dd

* AppVeyor setup and CMake before build

* reorder compiler configuration

* remove unnecessary

* remove -fno-strict-aliasing

* remove -Wsign-conversion, since before v4.0 part of -Wconversion

* -Wctor-dtor-privacy is GCC only

* remove -Woverloaded-virtual part of -Wmost, part of -Wall

* add -Wmissing-noreturn

* remove the pragmas for -Wunused-member-function

* Re-add MSBuild generator on AppVeyor

* Print CMake commands

* Add MSBuild toolset selection

* Separate Architecture setting

* clang-cl: add -Weverything

* clang-cl -Wno-c++98-compat

* clang-cl -Wno-c++98-compat-pedantic

* clang-cl -Wno-missing-prototypes

* clang-cl C++14 -Wno-unused-member-function

* clang-cl -Wundef __GNUC__

* clang++: add -Weverything

* clang++ -Wno-c++98-compat

* clang++ -Wno-c++98-compat-pedantic

* clang++ -Wno-missing-prototypes

* clang++ -Wno-weak-vtables

* clang++ C++14 -Wno-unused-member-function

* clang++ fix -Wundef _MSC_VER

* clang++ -Wno-padded

* clang++ solve -Wdeprecated

* Add AppleClang compiler target
Since CMake v3.0 use of Clang for both is deprecated

* clang++ v5.0 C++17 -Wno-undefined-func-template

* Add VS2015 + LLVM/clang-cl to AppVeyor

* Do not disable constexpr when compiling with clang-cl on Windows

* Clean-up clang-only warnings (now under -Weverything)

* Revert "Fix clang warning -Winvalid-noreturn on Windows"

This reverts commit 2238c4760e.

* Suppress -Winvalid-noreturn for the MS STL noexception workaround

* CMake: put preprocessor definition in target_compile_definitions

* Solve compiler warning C4668: __GNUC__ not defined
2019-01-15 10:27:34 -08:00
Johel Ernesto Guerrero Peña
6eeed739f1 Make narrow constexpr (#698) 2019-01-14 18:37:37 -08:00
Anna Gringauze
9ff6e19ea9
Dev/annagrin/remove explicit not null constructor (#743)
* Added c++17 test configurations for clang5.0 and clang6.0

* Removed explicit not_null constructor, sloppy_not_null, added strict_not_null

We added explicit not_null constructor in version 2.0.0.
It proved very difficult to switch to the new version for
large code bases that adopted previous versions of gsl,
due to not_null used extensively in the code. Still, using
explicit constructor is very benefitial for new code, since
it encorages better API design and make null checks intentional.

To resolve the issue, this change:
- removes explicit keyword from not_null constructor
- removes unneded sloppy_not_null type
- adds strict_not_null type to behave the same way as v2 not_null
- updates tests

* Removed explicit not_null constructor, sloppy_not_null, added strict_not_null

We added explicit not_null constructor in version 2.0.0.
It proved very difficult to switch to the new version for
large code bases that adopted previous versions of gsl,
due to not_null used extensively in the code. Still, using
explicit constructor is very benefitial for new code, since
it encorages better API design and make null checks intentional.

To resolve the issue, this change:
- removes explicit keyword from not_null constructor
- removes unneded sloppy_not_null type
- adds strict_not_null type to behave the same way as v2 not_null
- updates tests

* fixed build break for gcc7

* added more tests

* added more non-compiling tests

* Addressed PR comments and suppressed a code analysis warning

* Fixed test failure in not_null tests
2019-01-14 16:45:47 -08:00
Alex Green
7a7d025ffa Make CheckRange constexpr (#754) (#755) 2019-01-14 16:44:45 -08:00
k-brac
be3c3c2731 Fixes CMAKE_VERSION check (#759)
* Fixes CMAKE_VERSION check

Fixes #758 by using the correct comparison operator for a version
See documentation at https://cmake.org/cmake/help/latest/command/if.html
Thanks to this change, gsl natvis is properly included in a visual studio solution

* cmake version check for cmake < 3.7
2019-01-14 16:43:17 -08:00
hannesweisbach
0f68d133fa Suppress Warnings in GSL Headers (#731)
Suppress warnings in GSL headers using the SYSTEM keyword for target_include_directories(). This enables developers to see warnings standalone builds but hides them from users in non-standalone builds.
2018-11-28 15:37:59 -08:00
beinhaerter
88aca1caf3 added noexcept to get rid off VC warning con.4 (#748) 2018-11-28 11:57:43 -08:00
Stefan Dinkelacker
2e4d0d7e22 Fix spelling of library name (#747) 2018-11-28 11:53:38 -08:00
kile0
5a7093f983 Use the c++17 constexpr if in CheckRange if possible (#753)
* change c++17 to use constexpr if in CheckRange

* remove unnecessary macro

* use the portable feature test macro rather than direct version check
2018-11-28 11:52:11 -08:00
Anna Gringauze
b673375719
Dev/annagrin/fix span size test gcc (#750)
* Added c++17 test configurations for clang5.0 and clang6.0

* fixed test for broken span.size() in gcc6.5
2018-11-27 17:28:57 -08:00
Dave Hill
c02ddae4bc Span can be constructed from empty std::array safely (#686)
* Span std::array c'tor uses arr.data() instead of &arr[0]
- Fixes runtime issues when constructing from an empty std::array

* Construct span with std::data if C++17 detected

* Specialize span c'tor for std::array of length 0, set storage to nullptr
2018-11-05 15:39:41 -08:00
Ian Taylor
2bf9f137a6 make BoundsRanges constexpr (#732)
* make BoundsRanges constexpr

* fix clang compilation error

* fix windows compilation
2018-11-05 15:26:27 -08:00
Stefan Reinhold
457fb25609 Merge branch 'hunterization' of github.com:ithron/GSL into hunterization 2018-09-07 17:27:54 +02:00
Stefan Reinhold
8428e083e4 Merge branch 'master' into hunterization 2018-09-07 17:27:31 +02:00
Anna Gringauze
1995e86d1a span constructor no address (#723)
* Changed &arr[0] to std::array<T, N>::data and std::address_of to protect against overloaded operator&.

* Removed the usage of `std::addressof` because it is a C++ 17 feature. Using decay for C arrays instead.

* Add unit tests for #662.

* Added c++17 test configurations for clang5.0 and clang6.0

* fixed CppCoreCheck pointer decay warning
2018-08-19 17:10:53 -07:00
Anna Gringauze
585f48ce55 better check for branch opt (#724)
* Added c++17 test configurations for clang5.0 and clang6.0

* Simplified optimization in span::operator[]
2018-08-19 16:27:30 -07:00
Stephan Dollberg
86be2366c7 Fix #717 - Add empty() to strided_span (#718) 2018-08-17 11:47:03 -07:00
Anna Gringauze
55aad0ab6d
Dev/annagrin/explicit notnull transition description (#722)
* Added c++17 test configurations for clang5.0 and clang6.0

* Improved description how to make transition to explicit not_null constructor
2018-08-17 11:36:26 -07:00
Anna Gringauze
5016ce4a4d
Dev/annagrin/opt neg branch (#721)
* Added c++17 test configurations for clang5.0 and clang6.0

* Added optimization that removes a branch from span::operator[]

* minor beauty fix

* added a better message for the optimization, fixed signed/unsigned warning

* better check fir wrap-around possibility
2018-08-17 11:36:06 -07:00
Anna Gringauze
6241b3faa6
Dev/annagrin/sloppy not null (#712)
* Added c++17 test configurations for clang5.0 and clang6.0

* added transition helper sloppy_not_null

* Moved gsl_transition to a samples folder

* Fixed build break and static analysis warnings
2018-08-13 09:55:48 -07:00