History log of /external/clang/lib/Lex/LiteralSupport.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef8225444452a1486bd721f3285301fe84643b00 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/Lex/LiteralSupport.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/Lex/LiteralSupport.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/Lex/LiteralSupport.cpp
2add97e841ad5abe49821df430300686fa610173 27-Sep-2013 NAKAMURA Takumi <geek4civic@gmail.com> NumericLiteralParser::ParseNumberStartingWithZero(): Try to appease MSC16's miscompilation.

Investigating yet. It seems msc16 miscompiles s[1] to be folded.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
7f270f002a2049a5155e9f5f63ce4e94f0d76ece 26-Sep-2013 Richard Smith <richard-llvm@metafoo.co.uk> Fix buildbot breakage.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
064c3f1ed782eb641df6bc00beec069b3c80fa8a 26-Sep-2013 Richard Smith <richard-llvm@metafoo.co.uk> Replace a bool with an enum for clarity, based on review comment from James Dennett.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
859b6227694033dd6eaf3991a2b80877a406c382 26-Sep-2013 Richard Smith <richard-llvm@metafoo.co.uk> Implement C++1y digit separator proposal (' as a digit separator). This is not
yet approved by full committee, but was unanimously supported by EWG.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
06dd2b317a4bf282f3ac526b5cc4d74c39ed7ced 24-Sep-2013 Richard Smith <richard-llvm@metafoo.co.uk> Handle standard libraries that miss out the space when defining the standard
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.)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
83b6397f2da177490dc68d84ec199d08db4440a3 19-Sep-2013 Eli Friedman <eli.friedman@gmail.com> Fix CharByteWidth assertion in LiteralSupport.

Patch by Eelis van der Weegen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
c3d9da2a591b1f6529784ec246b9e0b44dcb704a 21-Aug-2013 Nick Lewycky <nicholas@mxc.ca> Revert r188863 which could propose wrong fixits for multibyte character literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
6347a8af824d8cb4197ec1a1d011f731390a8f31 21-Aug-2013 Nick Lewycky <nicholas@mxc.ca> Issue fixits replacing invalid character literals with the equivalent \xNN
escape code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
f3693889e7567992cfd2dfb57cd4f01c41badd21 21-Aug-2013 Nick Lewycky <nicholas@mxc.ca> No functionality change. Adjust a bunch of formatting issues in this code and
fix a typo in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5 23-Jul-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y literal suffix support:
* Allow ns, us, ms, s, min, h as numeric ud-suffixes
* Allow s as string ud-suffix


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b3da613977f6b77dee2b382eeff5713168a4ca18 23-Jul-2013 Eli Friedman <eli.friedman@gmail.com> Integers which are too large should be an error.

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.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
2fcf0de8a122ddb265d8c32d6ac1012c070e4f24 19-Apr-2013 Richard Smith <richard-llvm@metafoo.co.uk> Note that we support (and in fact have supported since the dawn of time itself)
C++1y binary literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
3f6f51e28231f65de9c2dd150a2d757b2162cfa3 08-Feb-2013 Jordan Rose <jordan_rose@apple.com> Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.

Nearly all of these changes are one-to-one replacements; the few that
aren't have to do with custom identifier validation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
cb5620c9b213f4bd323912159fdddda35e258a14 30-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Move UTF conversion routines from clang/lib/Basic to llvm/lib/Support

This is required to use them in TableGen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
bfec916e5fc40f22ac11267e78a024cd8dcf3bbf 27-Jan-2013 Jordan Rose <jordan_rose@apple.com> PR15067: Don't assert when a UCN appears in a C90 file.

Unfortunately, we can't accept the UCN as an extension because we're
required to treat it as two tokens for preprocessing purposes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5209e2bc4d18e679dcacfd6f6a0120aa1d4a757f 24-Jan-2013 Jordan Rose <jordan_rose@apple.com> Unify diagnostics for \x, \u, and \U without any following hex digits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
728bb4c41844b1df98eb35e7fa98eb5ffa9d65a6 18-Jan-2013 Jordan Rose <jordan_rose@apple.com> Adopt llvm::hexDigitValue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
80ad52f327b532bded5c5b0ee38779d841c6cd35 02-Jan-2013 Richard Smith <richard-llvm@metafoo.co.uk> s/CPlusPlus0x/CPlusPlus11/g


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4f056ac7f8d837822dbf8ab7cdd6849a9b0ad12f 08-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> LiteralSupport: Don't overflow the temporary buffer when decoding invalid string parts.

Instead just use a dummy buffer, we're not going to use the decoded string anyways.
Fixes PR14292.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5d704fef6e0a7db07329a37290684b17bf6badf8 08-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> LiteralSupport: Clean up style violations. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
82c6dc72adc30e785ce5bc6e8b43ae92070d2e08 31-Oct-2012 David Blaikie <dblaikie@gmail.com> Handle string encoding diagnostics when there are too many invalid ranges.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5bffbe5c1033967fe49c7a638fdcea99d30d573a 28-Oct-2012 Seth Cantrell <seth.cantrell@gmail.com> improve highlighting of invalid string encodings

limit highlight to exactly the bad encoding, and highlight every
bad encoding in a string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
2fd6956fd3020cdaf7452ee68435376125c60355 26-Sep-2012 Jordan Rose <jordan_rose@apple.com> Rename CanFitInto64Bits to alwaysFitsInto64Bits per discussion on IRC.

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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
191046d0504cec221655e9821f264f492a70f0b1 25-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Optimize NumericLiteralParser::GetIntegerValue().

It does a conservative estimate on the size of numbers that can fit into
uint64_t. This bound is improved.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
fc97ea29b1afd9e87341bce2b0cbb0c7172b7dd8 24-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Small cleanup of literal semantic analysis: hiding 'char *' pointers behind
StringRef makes code cleaner. Also, make the temporary buffer smaller:
512 characters is unreasonably large for integer literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
e5f0588840b20897631cc8110344fd2745ef4caa 08-Sep-2012 Richard Smith <richard-llvm@metafoo.co.uk> When a bad UTF-8 encoding or bogus escape sequence is encountered in a
string literal, produce a diagnostic pointing at the erroneous character
range, not at the start of the literal.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
941e47cef26fb6300a8d3e366f7c5694277e5849 03-Jul-2012 Nico Weber <nicolasweber@gmx.de> Share ConvertUTF8toWide() between Lex and CodeGen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
a1263cfb87151771fd74a1d2b676ae2ba172b72c 19-Jun-2012 James Dennett <jdennett@google.com> Documentation cleanup: add \verbatim markup for grammar productions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
58f9ce1664cd4fa67da48679a11df6aed25ce1fc 17-Jun-2012 James Dennett <jdennett@google.com> Documentation cleanup: added \verbatim...\verbatim markup to fix the
formatting of Doxygen's output for StringLiteralParser::StringLiteralParser.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
59b26d84b64510158e23d80eba077b844b7e0b04 13-Jun-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix off-by-one error in UTF-16 encoding: don't try to use a surrogate pair for U+FFFF.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
df9ef1bc8c3780307ab2ed81bf5e31c23310b936 13-Jun-2012 Richard Smith <richard-llvm@metafoo.co.uk> PR13099: Teach -Wformat about raw string literals, UTF-8 strings and Unicode escape sequences.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
3144749f8bf9bbf7c027f2161a930bff80ad6f72 03-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> In StringLiteralParser::init, make sure we emit an error when
failing to lex the string, as suggested by Eli.

Part of rdar://11305263.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
07a075870110a8376ddc1cd09412a0ec00987153 03-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> In StringLiteralParser::init(), fail gracefully if the string is
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d 11-Mar-2012 David Blaikie <dblaikie@gmail.com> Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).

The member variable is always "LangOpts" and the member function is always "getLangOpts".

Reviewed by Chris Lattner

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
26b75c07317a3b50a8a00a1623e3ef38af1d8349 09-Mar-2012 Richard Smith <richard-llvm@metafoo.co.uk> Improve diagnostics for UCNs referring to control characters and members of the
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.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
49d517467c3dcd2c67e8a6c740ba5160e37625f7 08-Mar-2012 Richard Smith <richard-llvm@metafoo.co.uk> When checking the encoding of an 8-bit string literal, don't just check the
first codepoint! Also, don't reject empty raw string literals for spurious
"encoding" issues. Also, don't rely on undefined behavior in ConvertUTF.c.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b453ad3214d00acc51c9aa702c76c58354d84b84 08-Mar-2012 Richard Smith <richard-llvm@metafoo.co.uk> Add support for cooked forms of user-defined-integer-literal and
user-defined-floating-literal. Support for raw forms of these literals
to follow.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
dd66be718f23c8149d74ae8b011b002e11e8d5ba 08-Mar-2012 Richard Smith <richard-llvm@metafoo.co.uk> User-defined literal support for character literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5cc2c6eb67b6e5361bbe96f79b519fd62ec666d6 05-Mar-2012 Richard Smith <richard-llvm@metafoo.co.uk> Lexing support for user-defined literals. Currently these lex as the same token
kinds as the underlying string literals, and we silently drop the ud-suffix;
those issues will be fixed by subsequent patches.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
91359302b822d829afa93c0dadf5f7ce6e19fbc6 11-Feb-2012 Eli Friedman <eli.friedman@gmail.com> Implement warning for non-wide string literals with an unexpected encoding. 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>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
66b0ebac276353f3ff7d41eaba3e6d24d48663b7 08-Feb-2012 Aaron Ballman <aaron@aaronballman.com> Fixing hex floating literal support so that it handles 0x.2p2 properly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b534a9ed04b343534e5f277b81d1170de3204164 07-Feb-2012 Aaron Ballman <aaron@aaronballman.com> Hex literals without a significand no longer crash the lexer. Fixes bug 7910

Patch by Eitan Adler

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
f7ccbad5d9949e7ddd1cbef43d482553b811e026 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import SmallString<> into clang namespace

(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5393e213f1d86a64e8e6b549c0ef76f9286ce279 18-Jan-2012 Seth Cantrell <seth.cantrell@gmail.com> stop claiming unicode escape sequences are too long in strings, because they never are

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
be773526230b5a7121a8b321b05f2e53fa473f5c 18-Jan-2012 Seth Cantrell <seth.cantrell@gmail.com> Improves support for Unicode in character literals

Updates ProcessUCNExcape() for C++. C++11 allows UCNs in character
and string literals that represent control characters and basic
source characters. Also C++03 allows UCNs that refer to surrogate
codepoints.

UTF-8 sequences in character literals are now handled as single
c-chars.

Added error for multiple characters in Unicode character literals.

Added errors for when a the execution charset encoding of a c-char
cannot be represented as a single code unit in the associated
character type. Note that for the purposes of this error the asso-
ciated character type for a narrow character literal is char, not
int, even though in C narrow character literals have type int.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
9b483df983759d51d61d54e8ae34bff423d15403 14-Nov-2011 Nico Weber <nicolasweber@gmx.de> Fix a regression in wide character codegen. See PR11369.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
22508f410b3d727d5c557af3304c0a1bad94999e 05-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Fix one last place where we weren't writing into a string literal consistently.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
caf1f26777c3adf2556c3af7bf9e01bd8ead17d9 03-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Use native endianness for writing out character escapes to the result buffer for string literal parsing. No functional change on little-endian architectures; should fix test failures on PPC.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
f74a4587629615ffd13bd0724868f86ba8c8f27b 01-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Perform proper conversion for strings encoded in the source file as UTF-8. (For now, we are assuming the source character set is always UTF-8; this can be easily extended if necessary.)

Tests will be coming up in a subsequent commit.

Patch by Seth Cantrell.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
46717308883538841da7059e72bc898abe0c8724 12-Oct-2011 Douglas Gregor <dgregor@apple.com> We do parse hexfloats in C++11; make it actually work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
17c8c84fbc5cbde336fdef8fffe63c08a955ade9 27-Sep-2011 Douglas Gregor <dgregor@apple.com> When parsing a character literal, extract the characters from the
buffer as an 'unsigned char', so that integer promotion doesn't
sign-extend character values > 127 into oblivion. Fixes
<rdar://problem/10188919>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
d6471f7c1921c7802804ce3ff6fe9768310f72b9 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename Diagnostic to DiagnosticsEngine as per issue 5397


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
9fe8c74a93ac8e92512615c5f83e7a328b3b0544 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Fix missing includes for llvm_unreachable


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Switch assert(0/false) llvm_unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
62ec1f2fd7368542bb926c04797fb07023547694 17-Sep-2011 Francois Pichet <pichet2000@gmail.com> Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.

Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
1155c42e7b1b4e401bb0a331a6d715d637958c75 31-Aug-2011 Douglas Gregor <dgregor@apple.com> Allow C99 hexfloats in C++0x mode. This change resolves the standards
collision between C99 hexfloats and C++0x user-defined literals by
giving C99 hexfloats precedence. Also, warning about user-defined
literals that conflict with hexfloats and those that have names that
are reserved by the implementation. Fixes <rdar://problem/9940194>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0473cd52eac6f1e831777ed899be3ea4509c7b24 19-Aug-2011 Craig Topper <craig.topper@gmail.com> Warn about and truncate UCNs that are too big for their character literal type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
ddddd48da72bc29d1c3f388ed91ea5549328129e 12-Aug-2011 NAKAMURA Takumi <geek4civic@gmail.com> De-Unicode-ify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
03720fce6e709661af020f3e4e6dfd08a96e8044 11-Aug-2011 Craig Topper <craig.topper@gmail.com> Raw string followup. Pass a couple StringRefs by value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
2fa4e86b4fdada3b9ecbbbd99965b83ed879f69b 11-Aug-2011 Craig Topper <craig.topper@gmail.com> Add support for C++0x raw string literals.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
1661d717563d6a27dec3da69deba2b2efaa45802 08-Aug-2011 Craig Topper <craig.topper@gmail.com> Fix comment (test commit)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5cee1195584fa8672253139c86e922daeda69b9e 27-Jul-2011 Douglas Gregor <dgregor@apple.com> Add support for C++0x unicode string and character literals, from Craig Topper!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
403de3f932b5d1d3e4e58f69960000911d04dd2a 18-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Fix a nasty bug where inside StringLiteralParser:

1. We would assume that the length of the string literal token was at least 2
2. We would allocate a buffer with size length-2

And when the stars aligned (one of which would be an invalid source location due to stale PCH)
The length would be 0 and we would try to allocate a 4GB buffer.

Add checks for this corner case and a bunch of asserts.
(We really really should have had an assert for 1.).

Note that there's no test case since I couldn't get one (it was major PITA to reproduce),
maybe later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
fc8f0e14ad142ed811e90fbd9a30e419e301c717 15-Apr-2011 Chris Lattner <sabre@nondot.org> fix a bunch of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
d062b604548be6e2f85f6f63a461702e5ea14115 11-Jan-2011 Francois Pichet <pichet2000@gmail.com> Microsoft integer suffix changes:
i64 is like LL
i32 is like L

Also set isMicrosoftInteger to true only if the suffix is well formed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
23ef69d197ba3b5e9602f7161fee50990059502a 03-Dec-2010 Ted Kremenek <kremenek@apple.com> Fix diagnostic for reporting bad escape sequence.
Patch by Paul Curtis!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b0607279cb98bbf2bbfe0db170aed39ef91e86a2 17-Nov-2010 Chris Lattner <sabre@nondot.org> move getSpelling from Preprocessor to Lexer, which it is more conceptually related to.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0833dd0675c25cbb35671c7a2006d511d5c77ce3 17-Nov-2010 Chris Lattner <sabre@nondot.org> propagate preprocessor out of StringLiteralParser. It is now
possible to create one without a preprocessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
a95880d6513c617bb96634bcc1f16c6bdb80dedc 17-Nov-2010 Chris Lattner <sabre@nondot.org> push the preprocessor out of EncodeUCNEscape



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
7ef5c27eb6e8ebe58b52013246c06753c3613263 17-Nov-2010 Chris Lattner <sabre@nondot.org> move AdvanceToTokenCharacter and getLocForEndOfToken from
Preprocessor to Lexer where they make more sense.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
872a45e91778eb0b706ff57272fe547d4512eb19 17-Nov-2010 Chris Lattner <sabre@nondot.org> add a static version of PP::AdvanceToTokenCharacter.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
6c66f07854c1334a1ce9eae1428d61d54182a6e1 17-Nov-2010 Chris Lattner <sabre@nondot.org> push use of Preprocessor out farther.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
ca1475ea0e76da6b852796610139ed9b49c8d4a6 17-Nov-2010 Chris Lattner <sabre@nondot.org> push use of Preprocessor out of getOffsetOfStringByte


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
48cf9824fbad42995f4d91d59d08d2620effd683 17-Nov-2010 Chris Lattner <sabre@nondot.org> add a static form of the efficient PP::getSpelling method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
91f54ce93bec136fb9e18740b895cf1c1339524b 17-Nov-2010 Chris Lattner <sabre@nondot.org> refactor the interface to StringLiteralParser::getOffsetOfStringByte,
pushing the dependency on the preprocessor out a bit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
c637415a96c16abc7e28ef83c6c105716f7e8936 14-Oct-2010 Chris Lattner <sabre@nondot.org> allow I128 suffixes in msextensions mode just like i128 suffixes, patch
by Martin Vejnar!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
59705aee3fe01aa6fb6962dd11350161b47983d9 09-Oct-2010 Nico Weber <nicolasweber@gmx.de> Add support for UCNs for character literals

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
a0f15b0848405ae16d63bd5d78c862a6526b338a 06-Oct-2010 Nico Weber <nicolasweber@gmx.de> Add support for 4-byte UCNs like \U12345678. Warn about UCNs in c90 mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0b6542cbc120f6db0bb8f593e050dae8a09a7281 01-Sep-2010 Fariborz Jahanian <fjahanian@apple.com> Prevent warning when built with assert off.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
56bedefe92ae8f604d14bea75cc3040ab32337c2 01-Sep-2010 Fariborz Jahanian <fjahanian@apple.com> Some support for unicode string constants
in wide strings. radar 8360841.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
6cf750298d3621d8a10a6dd07fcee8e274b9d94d 30-Aug-2010 Sean Hunt <scshunt@csclub.uwaterloo.ca> Revert my user-defined literal commits - r1124{58,60,67} pending
some issues being sorted out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0016d519b831859526b79405cdae4c64c73731c8 29-Aug-2010 Sean Hunt <scshunt@csclub.uwaterloo.ca> Implement C++0x user-defined string literals.

The extra data stored on user-defined literal Tokens is stored in extra
allocated memory, which is managed by the PreprocessorLexer because there isn't
a better place to put it that makes sure it gets deallocated, but only after
it's used up. My testing has shown no significant slowdown as a result, but
independent testing would be appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
476d8b863cb65b2b5833235d97315cdb46e6f5aa 11-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Random temporary string cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
427c492d368d6ecf409fa8053eecb5cd0e779c5b 20-Jul-2010 Douglas Gregor <dgregor@apple.com> Complain when string literals are too long for the active language
standard's minimum requirements.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
37dd3ecbfc555c3ee0a1922f4bd5ab999c1e5461 15-Jun-2010 Chris Lattner <sabre@nondot.org> Remove a dead argument to ProcessUCNEscape.

Fix string concatenation to treat escapes in concatenated strings that
are wide because of other string chunks to process the escapes as wide
themselves. Before we would warn about and miscompile the attached testcase.

This fixes rdar://8040728 - miscompile + warning: hex escape sequence out of range


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
64a8034226e6529a7ba65c005c846a70e17a1664 28-May-2010 Fariborz Jahanian <fjahanian@apple.com> Fix a miscompile of wchar pascal strings.
(radar 8020384)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b90f4b3fb94056609da9cca5eef7358d95a363b2 26-May-2010 Douglas Gregor <dgregor@apple.com> Tell the string literal parser when it's not permitted to emit
diagnostics. That would be while we're parsing string literals for the
sole purpose of producing a diagnostic about them. Fixes
<rdar://problem/8026030>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
1c6c64b5181a960c7d4cace4995a938d4dfa6fbf 17-Apr-2010 Chris Lattner <sabre@nondot.org> emit warn_char_constant_too_large at most once per literal, fixing PR6852


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
50f6af7a6d6951a63f3da7d4c5a7d3965bf73b63 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Introduce optional "Invalid" parameters to routines that invoke the
SourceManager's getBuffer() and, therefore, could fail, along with
Preprocessor::getSpelling(). Use the Invalid parameters in the literal
parsers (string, floating point, integral, character) to make them
robust against errors that stem from, e.g., PCH files that are not
consistent with the underlying file system.

I still need to audit every use caller to all of these routines, to
determine which ones need specific handling of error conditions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
a8be02b655b76e4dbe776b0c62bc3c450dc6feab 22-Jan-2010 Fariborz Jahanian <fjahanian@apple.com> ui64, etc. are valid VS suffixes.
Fixes radar 7562363.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
8c723404c34e9347fae473489194e8c200c4ac83 11-Jan-2010 Sean Hunt <rideau3@gmail.com> Do not parse hexadecimal floating point literals in C++0x mode because they are
incompatible with user-defined literals, specifically with the following form:

0x1p+1

The preprocessing-number token extends only as far as the 'p'; the '+' is not
included. Previously we could get away with this extension as p was an invalid
suffix, but now with user-defined literals, 'p' might well be a valid suffix
and we are forced to consider it as such.

This patch also adds a warning in non-0x C++ modes telling the user that
this extension is incompatible with C++0x that is enabled by default
(previously and with other languages, we warn only with a compliance
option such as -pedantic).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
94c939dc1d4958b62ea5a89294dd8b2905f3191f 24-Dec-2009 John McCall <rjmccall@apple.com> Diagnose out-of-bounds floating-point constants. Fixes rdar://problem/6974641



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b7e996ea794b337c9d5295455302c64dc1b0cb8d 23-Dec-2009 John McCall <rjmccall@apple.com> Eliminate a completely unnecessary buffer copy when parsing float literals.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
6e8c7acb61b2c7f421d6e1aba8a7a84e96ab6981 28-Nov-2009 Nuno Lopes <nunoplopes@sapo.pt> cleanup parsing of MS integer suffixes a little. this fixes PR5616
btw, I believe that isMicrosoftInteger can go away; it's not read anywhere

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b79fe2d28777652a4df4f49dc876cbec060ca90e 09-Oct-2009 Mike Stump <mrs@apple.com> This fixes support for complex literals, reworked to avoid a goto, and
to add a flag noting the presence of a Microsoft extension suffix (i8,
i16, i32, i64). Patch by John Thompson.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
e9f195f15ffe96d0a220c872ab12d0630a633c44 17-Aug-2009 Erick Tryzelaar <idadesub@users.sourceforge.net> Update lexer to work with the new APFloat string parsing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
930b71a4a7dedf70a73e5fd875bae7df452b80a9 29-Jul-2009 Daniel Dunbar <daniel@zuster.org> CharLiteralParser::IsMultiChar was sometimes uninitialized.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
1a75ee270941dd8b5c7fdd23dffb5e81a0fd7290 14-Jul-2009 Alisdair Meredith <public@alisdairm.net> Fix the build

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
3c54801fbc67d8df2fed0711a2e2022db6b1bbcf 10-Jun-2009 Eli Friedman <eli.friedman@gmail.com> PR4353: Add support for \E as a character escape.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
15b91764d08e886391c865c4a444d7b51141c284 05-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Move CharIsSigned from TargetInfo to LangOptions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
2a1c363f38e59a5044fc349aa7e538a50954c244 01-Jun-2009 Eli Friedman <eli.friedman@gmail.com> PR4283: Don't truncate multibyte character constants in the
preprocessor.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
e3ad881e4e9620e941dabd4e78dacdb028b85682 28-Apr-2009 Chris Lattner <sabre@nondot.org> Implement -Wfour-char-constants, which is an extension, not an extwarn,
and apparently not part of -Wall


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
b77f41e66f736e9e67a9d39c47c747804b22c6b9 28-Apr-2009 Chris Lattner <sabre@nondot.org> implement -Wmultichar


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
f01fdff97b245caac98100d232c760b4d0531411 28-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Get rid of some useless uses of NoExtensions. The philosophy here is
that if we're going to print an extension warning anyway,
there's no point to changing behavior based on NoExtensions: it will
only make error recovery worse.

Note that this doesn't cause any behavior change because NoExtensions
isn't used by the current front-end. I'm still considering what to do about
the remaining use of NoExtensions in IdentifierTable.cpp.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4bc11af9bed1d4a247e3db1fcb754d410ad99099 21-Apr-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Use an APInt of target int size to detect overflow while parsing multichars.
So 'abc' on i16 platforms will warn but not on i32 platforms.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
f87b3dfdf9d46b730a05415f6828e5285174fa33 14-Apr-2009 Chris Lattner <sabre@nondot.org> temporarily revert r69046


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0fab49f7daa53a53882f19c2879feb210608fe00 14-Apr-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Literal value calculation isn't likely to overflow on targets having int as 32 or less. Fixing the assert as it otherwise triggers for PIC16 which as i16 as int.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4e93b34fdb798abfa0534062a139f2c37cbf876e 01-Apr-2009 Steve Naroff <snaroff@apple.com> ProcessUCNEscape(): Incorportate some feedback from Chris.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
57d7dde770c67b282e7fb77b1b81e429910937b3 01-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Fix pascal string support; testcase from mailing list message.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
8a5c0cd90b8d607ca284274000ed8716b836d253 31-Mar-2009 Steve Naroff <snaroff@apple.com> Incorporate feedback from Eli.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0e3e3eb3879d5a7aaca4a393706149ddef8544f1 31-Mar-2009 Steve Naroff <snaroff@apple.com> Implement UCN support for C string literals (C99 6.4.3) and add some very basic tests. Chris Goller has graciously offered to write some test to help validate UCN support.

From a front-end perspective, I believe this code should work for ObjC @-strings. At the moment, I believe we need to tweak the code generation for @-strings (which doesn't appear to handle them). Will be investigating.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
dbb1ecc32ca122b07b7c98fd0a8f6f53985adacc 27-Feb-2009 Chris Lattner <sabre@nondot.org> fix some sema problems with wide strings and hook up basic codegen for them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
719e61573f27c11057ecfe0dd8f141621602c571 18-Feb-2009 Chris Lattner <sabre@nondot.org> Next step toward making string diagnostics correct: handle
escapes in the string for subtoken positioning. This gives
us working examples like:

t.m:5:16: warning: field width should have type 'int', but argument has type 'unsigned int'
printf("\n\n%*d", (unsigned) 1, 1);
^ ~~~~~~~~~~~~

where before the caret pointed two spaces to the left.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
500d3297d2a21edeac4d46cbcbe21bc2352c2a28 29-Jan-2009 Chris Lattner <sabre@nondot.org> move library-specific diagnostic headers into library private dirs. Reduce
redundant #includes. Patch by Anders Johnsen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
20c6b3b85e186cd52d5d99489132d71d498159eb 27-Jan-2009 Chris Lattner <sabre@nondot.org> Split the single monolithic DiagnosticKinds.def file into one
.def file for each library. This means that adding a diagnostic
to sema doesn't require all the other libraries to be rebuilt.

Patch by Anders Johnsen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
bbee00b6456e90a09f63c83c20233e6c5ad6000a 16-Jan-2009 Chris Lattner <sabre@nondot.org> minor cleanups to StringLiteralParser: no need to pass target info
into its ctor. Also, make it handle validity checking of pascal
strings instead of making clients do it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4984212fced6d9c6538ebb7319839105e3880b45 22-Nov-2008 Chris Lattner <sabre@nondot.org> Fix a weird inconsistency with hex floats. Previously the lexer
would not eat the "-1" in "0x0p-1", but LiteralSupport would accept
it when extensions are on. This caused strangeness and failures
when hexfloats were properly treated as an extension (not error)
in LiteralSupport.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
ac92d829111bc19d1cc97cd85c3c04bc39b969d1 22-Nov-2008 Chris Lattner <sabre@nondot.org> remove the NumericLiteralParser::Diag helper method, inlining it into
its call sites. This makes it more explicit when the hasError flag is
getting set and removes a confusing difference in behavior between
PP.Diag and Diag in this code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
204b2fed909b1eabea7aeb6caadd7cff718edee5 18-Nov-2008 Chris Lattner <sabre@nondot.org> Remove the last of the old-style Preprocessor::Diag methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
a179be34c1a3c0190e6b9e39dee2197651f44a5d 16-Oct-2008 Daniel Dunbar <daniel@zuster.org> Speed up NumericLiteralParser::GetIntegerValue.
- Implement fast path when value easily fits in a uint64.
- ~6x faster, translates to 1-2% on Cocoa.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
d70cb645702bdbb42aee58403306a7c47e0d901c 16-Oct-2008 Daniel Dunbar <daniel@zuster.org> Simplify overflow-on-add check in NumericLiteralParser::GetIntegerValue.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
c29bbde0a14a664d6843b21d3791478d1f4d2833 30-Sep-2008 Chris Lattner <sabre@nondot.org> Document assumptions that NumericLiteralParser makes with an assertion.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
4411f46050216a139ab2fc7ff145ec384d11ec7f 30-Sep-2008 Chris Lattner <sabre@nondot.org> Fix the root cause of PR2750 instead of the side effect.

NumericLiteral parser is not careful about overrun because
it should never be possible. It implicitly expects that its
input matched the regex for pp-constant. Because of this, it
knows it can't be pointing to a prefix of something that
looks like a number. This is all fine, except that __LINE__
does not prevent implicit concatenation from happening. Fix
__LINE__ to not do this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
6f7adbdcd07a6c13cb81bf3048d1e52f149a9377 02-Sep-2008 Eli Friedman <eli.friedman@gmail.com> Fix for PR2750; don't check for an 'e' in the trash after the token.

Note that this isn't really a complete fix; I think there are other
potential overrun situations. I don't really know what the best
systematic fix is, though.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
acc5f3e42334525bf28c86471551f83dfce222d5 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> More #include cleaning
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
6ea623823f8532670480425b573f35115404b4a0 25-Jul-2008 Chris Lattner <sabre@nondot.org> In c89 mode accept hex fp constants as an extension:

t2.c:1:17: warning: hexadecimal floating constants are a C99 feature
long double d = 0x0.0000003ffffffff00000p-16357L;
^

instead of emitting a weird error message that doesn't make sense:

t2.c:1:41: error: hexadecimal floating constants require an exponent
long double d = 0x0.0000003ffffffff00000p-16357L;
^

rdar://6096838


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
413d355e38755a71f106dbc0ac900ca989070916 30-Jun-2008 Chris Lattner <sabre@nondot.org> Fix a bug reported by Kelly Wilson, where we incorrectly
rejected FP immediates like 08.123


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
368328c88bd46f471bbf85f05438b4f2eb95df5b 30-Jun-2008 Chris Lattner <sabre@nondot.org> refactor some code out into a new method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
70f66ab053f36ab3df7a778d09bcb2b4b0fec1f8 20-Apr-2008 Chris Lattner <sabre@nondot.org> for exponent-related errors, emit the diagnostic on the 'e' or 'p'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0b7f69d789ca1f76582ee9a336e25861fd0c1416 20-Apr-2008 Chris Lattner <sabre@nondot.org> when emitting diagnostics about some character in a numeric
literal, indicate what character the error is about or where
it would be. For example:

pr2241.c:1:17: error: exponent has no digits
float f[] = { 1e , 1ee0 };
^



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
0c29b22f4384500cc0d04f3072cc5d5d58d10d6c 04-Apr-2008 Steve Naroff <snaroff@apple.com> Support MS-specific integer suffixes (i8, i16, i32, i64, i128).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp
bda0b626e74513950405c27525af87e214e605e2 16-Mar-2008 Chris Lattner <sabre@nondot.org> Make a major restructuring of the clang tree: introduce a top-level
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/LiteralSupport.cpp