summaryrefslogtreecommitdiff
path: root/llvm/lib/Support/APSInt.cpp
AgeCommit message (Collapse)Author
2023-02-19Use APInt::getSignificantBits instead of APInt::getMinSignedBits (NFC)Kazu Hirata
Note that getMinSignedBits has been soft-deprecated in favor of getSignificantBits.
2020-06-10ADT: Fix that APSInt's string constructor claims it requires 5 bits to store ↵Raphael Isemann
a zero Summary: When constructing an APSInt from a string, the constructor doesn't correctly truncate the bit width of the result if the passed in string was "0" (or any alternative way to express 0 like "-0" or "000"). Instead of 1 (which is the smallest allowed bit width) it returns an APSInt with a bit width of 5. The reason is that the constructor checks that it never truncates the result to the invalid bit width of 0, so when it calculates that storing a "0" doesn't require any bits it just keeps the original overestimated bit width (which happens to be 5). This patch just sets the bit width of the result to 1 if the required bit width is 0. Reviewers: arphaman, dexonsmith Reviewed By: dexonsmith Subscribers: hiraditya, dexonsmith, JDevlieghere, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81329
2020-03-02Explicitly include <cassert> when using assertJoerg Sonnenberger
Depending on the OS used, a module-enabled build can fail due to the special handling <cassert> gets as textual header.
2019-07-16Fix parameter name comments using clang-tidy. NFC.Rui Ueyama
This patch applies clang-tidy's bugprone-argument-comment tool to LLVM, clang and lld source trees. Here is how I created this patch: $ git clone https://github.com/llvm/llvm-project.git $ cd llvm-project $ mkdir build $ cd build $ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug \ -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra' \ -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DLLVM_ENABLE_LLD=On \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../llvm $ ninja $ parallel clang-tidy -checks='-*,bugprone-argument-comment' \ -config='{CheckOptions: [{key: StrictMode, value: 1}]}' -fix \ ::: ../llvm/lib/**/*.{cpp,h} ../clang/lib/**/*.{cpp,h} ../lld/**/*.{cpp,h} llvm-svn: 366177
2019-01-19Update the file headers across all of the LLVM projects in the monorepoChandler Carruth
to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
2016-04-16Remove some unneeded headers and replace some headers with forward class ↵Mehdi Amini
declarations (NFC) Differential Revision: http://reviews.llvm.org/D19154 Patch by Eugene Kosov <claprix@yandex.ru> From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266524
2015-06-23ADT: Add a string APSInt constructor.Alex Lorenz
This commit moves the APSInt initialization code that's used by the LLLexer class into a new APSInt constructor that constructs APSInts from strings. This change is useful for MIR Serialization, as it would allow the MILexer class to use the same APSInt initialization as LLexer when parsing immediate machine operands. llvm-svn: 240436
2008-01-19Added FoldingSet style 'profiling' support for APSInt.Ted Kremenek
llvm-svn: 46189