summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/LiteralSupport.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Lex: Use the correct types for MS integer suffixes"Rafael Espindola2014-06-211-10/+11
| | | | | | | | | This reverts commit r211426. This broke the arm bots. The crash can be reproduced on X86 by running. ./bin/clang -cc1 -fsyntax-only -verify -fms-extensions ~/llvm/clang/test/Lexer/ms-extensions.c -triple arm-linux llvm-svn: 211434
* Lex: Use the correct types for MS integer suffixesDavid Majnemer2014-06-211-11/+10
| | | | | | | | | | | | We didn't properly implement support for the sized integer suffixes. Suffixes like i16 were essentially ignored instead of mapping them to the appropriately sized integer type. This fixes PR20008. Differential Revision: http://reviews.llvm.org/D4132 llvm-svn: 211426
* Permit the "if" literal suffix with Microsoft extensions enabled.Peter Collingbourne2014-05-291-2/+7
| | | | | | Differential Revision: http://reviews.llvm.org/D3963 llvm-svn: 209859
* Remove limits on the number of fix-it hints and ranges in the DiagnosticsEngine.Alexander Kornienko2014-05-221-2/+1
| | | | | | | | | | | | | | | | | | | Summary: The limits on the number of fix-it hints and ranges attached to a diagnostic are arbitrary and don't apply universally to all users of the DiagnosticsEngine. The way the limits are enforced may lead to diagnostics generating invalid sets of fixes. I suggest removing the limits, which will also simplify the implementation. Reviewers: rsmith Reviewed By: rsmith Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D3879 llvm-svn: 209468
* [C++11] Use 'nullptr'. Lex edition.Craig Topper2014-05-171-4/+4
| | | | llvm-svn: 209083
* Add some missing checks for C++1y digit separators that don't in fact separateRichard Smith2014-04-221-0/+6
| | | | | | | | digits. Turns out we have completely separate lexing codepaths for floating point numbers depending on whether or not they start with a zero. Who knew... =) llvm-svn: 206932
* Remove uses of SmallString::equals in favor of SmallVectorImpl<char>'s ↵David Blaikie2014-03-091-1/+1
| | | | | | operator== llvm-svn: 203373
* PR18855: Add support for UCNs and UTF-8 encoding within ud-suffixes.Richard Smith2014-02-171-12/+67
| | | | llvm-svn: 201532
* NumericLiteralParser::ParseNumberStartingWithZero(): Try to appease MSC16's ↵NAKAMURA Takumi2013-09-271-2/+5
| | | | | | | | miscompilation. Investigating yet. It seems msc16 miscompiles s[1] to be folded. llvm-svn: 191485
* Fix buildbot breakage.Richard Smith2013-09-261-4/+4
| | | | llvm-svn: 191424
* Replace a bool with an enum for clarity, based on review comment from James ↵Richard Smith2013-09-261-7/+8
| | | | | | Dennett. llvm-svn: 191420
* Implement C++1y digit separator proposal (' as a digit separator). This is notRichard Smith2013-09-261-4/+39
| | | | | | yet approved by full committee, but was unanimously supported by EWG. llvm-svn: 191417
* Handle standard libraries that miss out the space when defining the standardRichard Smith2013-09-241-0/+5
| | | | | | | | literal operators. Also, for now, allow the proposed C++1y "il", "i", and "if" suffixes too. (Will revert the latter if LWG decides not to go ahead with that change after all.) llvm-svn: 191274
* Fix CharByteWidth assertion in LiteralSupport.Eli Friedman2013-09-181-1/+1
| | | | | | Patch by Eelis van der Weegen. llvm-svn: 190971
* Revert r188863 which could propose wrong fixits for multibyte character ↵Nick Lewycky2013-08-211-9/+3
| | | | | | literals. llvm-svn: 188918
* Issue fixits replacing invalid character literals with the equivalent \xNNNick Lewycky2013-08-211-3/+9
| | | | | | escape code. llvm-svn: 188863
* No functionality change. Adjust a bunch of formatting issues in this code andNick Lewycky2013-08-211-20/+20
| | | | | | fix a typo in a comment. llvm-svn: 188857
* C++1y literal suffix support:Richard Smith2013-07-231-5/+51
| | | | | | | * Allow ns, us, ms, s, min, h as numeric ud-suffixes * Allow s as string ud-suffix llvm-svn: 186933
* Integers which are too large should be an error.Eli Friedman2013-07-231-2/+2
| | | | | | | | Switch some warnings over to errors which should never have been warnings in the first place. (Also, a minor fix to the preprocessor rules for integer literals while I'm here.) llvm-svn: 186903
* Note that we support (and in fact have supported since the dawn of time itself)Richard Smith2013-04-191-2/+7
| | | | | | C++1y binary literals. llvm-svn: 179883
* Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.Jordan Rose2013-02-081-10/+10
| | | | | | | Nearly all of these changes are one-to-one replacements; the few that aren't have to do with custom identifier validation. llvm-svn: 174768
* Move UTF conversion routines from clang/lib/Basic to llvm/lib/SupportDmitri Gribenko2013-01-301-1/+2
| | | | | | This is required to use them in TableGen. llvm-svn: 173924
* PR15067: Don't assert when a UCN appears in a C90 file.Jordan Rose2013-01-271-1/+1
| | | | | | | Unfortunately, we can't accept the UCN as an extension because we're required to treat it as two tokens for preprocessing purposes. llvm-svn: 173622
* Unify diagnostics for \x, \u, and \U without any following hex digits.Jordan Rose2013-01-241-2/+2
| | | | llvm-svn: 173368
* Adopt llvm::hexDigitValue.Jordan Rose2013-01-181-13/+4
| | | | llvm-svn: 172861
* s/CPlusPlus0x/CPlusPlus11/gRichard Smith2013-01-021-2/+2
| | | | llvm-svn: 171367
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-3/+3
| | | | | | | | | | | | | uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
* LiteralSupport: Don't overflow the temporary buffer when decoding invalid ↵Benjamin Kramer2012-11-081-5/+6
| | | | | | | | | string parts. Instead just use a dummy buffer, we're not going to use the decoded string anyways. Fixes PR14292. llvm-svn: 167594
* LiteralSupport: Clean up style violations. No functionality change.Benjamin Kramer2012-11-081-15/+15
| | | | llvm-svn: 167593
* Handle string encoding diagnostics when there are too many invalid ranges.David Blaikie2012-10-301-1/+2
| | | | llvm-svn: 167059
* improve highlighting of invalid string encodingsSeth Cantrell2012-10-281-11/+49
| | | | | | | limit highlight to exactly the bad encoding, and highlight every bad encoding in a string. llvm-svn: 166900
* Rename CanFitInto64Bits to alwaysFitsInto64Bits per discussion on IRC.Jordan Rose2012-09-251-2/+2
| | | | | | | | | | | | | This makes the behavior clearer concerning literals with the maximum number of digits. For a 32-bit example, 4,000,000,000 is a valid uint32_t, but 5,000,000,000 is not, so we'd have to count 10-digit decimal numbers as "unsafe" (meaning we have to check for overflow when parsing them, just as we would for numbers with 11 digits or higher). This is the same, only with 64 bits to play with. No functionality change. llvm-svn: 164639
* Optimize NumericLiteralParser::GetIntegerValue().Dmitri Gribenko2012-09-251-9/+21
| | | | | | | It does a conservative estimate on the size of numbers that can fit into uint64_t. This bound is improved. llvm-svn: 164624
* Small cleanup of literal semantic analysis: hiding 'char *' pointers behindDmitri Gribenko2012-09-241-11/+11
| | | | | | | StringRef makes code cleaner. Also, make the temporary buffer smaller: 512 characters is unreasonably large for integer literals. llvm-svn: 164484
* When a bad UTF-8 encoding or bogus escape sequence is encountered in aRichard Smith2012-09-081-60/+101
| | | | | | | string literal, produce a diagnostic pointing at the erroneous character range, not at the start of the literal. llvm-svn: 163459
* Share ConvertUTF8toWide() between Lex and CodeGen.Nico Weber2012-07-031-36/+1
| | | | llvm-svn: 159634
* Documentation cleanup: add \verbatim markup for grammar productionsJames Dennett2012-06-191-1/+2
| | | | llvm-svn: 158740
* Documentation cleanup: added \verbatim...\verbatim markup to fix theJames Dennett2012-06-171-0/+2
| | | | | | formatting of Doxygen's output for StringLiteralParser::StringLiteralParser. llvm-svn: 158616
* Fix off-by-one error in UTF-16 encoding: don't try to use a surrogate pair ↵Richard Smith2012-06-131-1/+1
| | | | | | for U+FFFF. llvm-svn: 158391
* PR13099: Teach -Wformat about raw string literals, UTF-8 strings and Unicode ↵Richard Smith2012-06-131-9/+71
| | | | | | escape sequences. llvm-svn: 158390
* In StringLiteralParser::init, make sure we emit an error whenArgyrios Kyrtzidis2012-05-031-14/+13
| | | | | | | | failing to lex the string, as suggested by Eli. Part of rdar://11305263. llvm-svn: 156081
* In StringLiteralParser::init(), fail gracefully if the string isArgyrios Kyrtzidis2012-05-031-1/+6
| | | | | | | | | not as we expect; it may be due to racing issue of a file coming from PCH changing after the PCH is loaded. rdar://11353109 llvm-svn: 156043
* Unify naming of LangOptions variable/get function across the Clang stack ↵David Blaikie2012-03-111-6/+6
| | | | | | | | | | (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner llvm-svn: 152536
* Improve diagnostics for UCNs referring to control characters and members of theRichard Smith2012-03-091-24/+41
| | | | | | | | | | basic source character set in C++98. Add -Wc++98-compat diagnostics for same in literals in C++11. Extend such support to cover string literals as well as character literals, and mark N2170 as done. This seems too minor to warrant a release note to me. Let me know if you disagree. llvm-svn: 152444
* When checking the encoding of an 8-bit string literal, don't just check theRichard Smith2012-03-081-13/+8
| | | | | | | first codepoint! Also, don't reject empty raw string literals for spurious "encoding" issues. Also, don't rely on undefined behavior in ConvertUTF.c. llvm-svn: 152344
* Add support for cooked forms of user-defined-integer-literal andRichard Smith2012-03-081-3/+15
| | | | | | | user-defined-floating-literal. Support for raw forms of these literals to follow. llvm-svn: 152302
* User-defined literal support for character literals.Richard Smith2012-03-081-0/+3
| | | | llvm-svn: 152277
* Lexing support for user-defined literals. Currently these lex as the same tokenRichard Smith2012-03-051-5/+52
| | | | | | | kinds as the underlying string literals, and we silently drop the ud-suffix; those issues will be fixed by subsequent patches. llvm-svn: 152012
* Implement warning for non-wide string literals with an unexpected encoding. ↵Eli Friedman2012-02-111-15/+40
| | | | | | Downgrade error for non-wide character literals with an unexpected encoding to a warning for compatibility with gcc and older versions of clang. <rdar://problem/10837678>. llvm-svn: 150295
* Fixing hex floating literal support so that it handles 0x.2p2 properly.Aaron Ballman2012-02-081-6/+11
| | | | llvm-svn: 150072
OpenPOWER on IntegriCloud