Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2 |
|
#
c8554e13 |
| 11-Oct-2024 |
Erich Keane <ekeane@nvidia.com> |
Turn `-Wdeprecated-literal-operator` on by default (#111027)
It would be nice to see what our users think about this change, as this
is something that WG21/EWG quite wants to fix a handful of quest
Turn `-Wdeprecated-literal-operator` on by default (#111027)
It would be nice to see what our users think about this change, as this
is something that WG21/EWG quite wants to fix a handful of questionable
issues with UB. Depending on the outcome of this after being committed,
we might instead suggest EWG undeprecate this, and require a bit of
'magic' from the lexer.
Additionally, this patch makes it so we emit this diagnostic ALSO in
cases where the literal name is reserved. It doesn't make sense to limit
that.
---------
Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav@gmail.com>
show more ...
|
Revision tags: llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3 |
|
#
135fecd4 |
| 08-Aug-2024 |
Abhina Sree <Abhina.Sreeskantharajan@ibm.com> |
[SystemZ][z/OS] __ptr32 support for z/OS (#101696)
Enabling __ptr32 keyword to support in Clang for z/OS. It is represented
by addrspace(1) in LLVM IR. Unlike existing implementation, __ptr32 is
n
[SystemZ][z/OS] __ptr32 support for z/OS (#101696)
Enabling __ptr32 keyword to support in Clang for z/OS. It is represented
by addrspace(1) in LLVM IR. Unlike existing implementation, __ptr32 is
not mangled into symbol names for z/OS.
show more ...
|
#
fc66eaa2 |
| 07-Aug-2024 |
Abhina Sree <Abhina.Sreeskantharajan@ibm.com> |
[NFC] Format TokenKey enum (#101700)
This is to fix the white-space formatting of the TokenKey enum
|
Revision tags: llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init |
|
#
c91e8527 |
| 22-Jul-2024 |
yronglin <yronglin777@gmail.com> |
Revert "[Clang] Implement P3034R1 Module Declarations Shouldn’t be Macros" (#99838)
Reverts llvm/llvm-project#90574
|
#
e77a01d7 |
| 20-Jul-2024 |
yronglin <yronglin777@gmail.com> |
[Clang] Implement P3034R1 Module Declarations Shouldn’t be Macros (#90574)
This PR implement [P3034R1 Module Declarations Shouldn’t be
Macros](https://wg21.link/P3034R1), and refactor the convolute
[Clang] Implement P3034R1 Module Declarations Shouldn’t be Macros (#90574)
This PR implement [P3034R1 Module Declarations Shouldn’t be
Macros](https://wg21.link/P3034R1), and refactor the convoluted state
machines in module name lexical analysis.
---------
Signed-off-by: yronglin <yronglin777@gmail.com>
Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
Co-authored-by: cor3ntin <corentinjabot@gmail.com>
show more ...
|
#
41c6e437 |
| 20-Jun-2024 |
Mariya Podchishchaeva <mariya.podchishchaeva@intel.com> |
Reland [clang][Sema, Lex, Parse] Preprocessor embed in C and C++ (#95802)
This commit implements the entirety of the now-accepted [N3017
-Preprocessor
Embed](https://www.open-std.org/jtc1/sc22/wg1
Reland [clang][Sema, Lex, Parse] Preprocessor embed in C and C++ (#95802)
This commit implements the entirety of the now-accepted [N3017
-Preprocessor
Embed](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3017.htm) and
its sister C++ paper [p1967](https://wg21.link/p1967). It implements
everything in the specification, and includes an implementation that
drastically improves the time it takes to embed data in specific
scenarios (the initialization of character type arrays). The mechanisms
used to do this are used under the "as-if" rule, and in general when the
system cannot detect it is initializing an array object in a variable
declaration, will generate EmbedExpr AST node which will be expanded by
AST consumers (CodeGen or constant expression evaluators) or expand
embed directive as a comma expression.
This reverts commit
https://github.com/llvm/llvm-project/commit/682d461d5a231cee54d65910e6341769419a67d7.
---------
Co-authored-by: The Phantom Derpstorm <phdofthehouse@gmail.com>
Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
Co-authored-by: cor3ntin <corentinjabot@gmail.com>
Co-authored-by: H. Vetinari <h.vetinari@gmx.com>
show more ...
|
Revision tags: llvmorg-18.1.8 |
|
#
682d461d |
| 12-Jun-2024 |
Vitaly Buka <vitalybuka@google.com> |
Revert "✨ [Sema, Lex, Parse] Preprocessor embed in C and C++ (and Obj-C and Obj-C++ by-proxy)" (#95299)
Reverts llvm/llvm-project#68620
Introduce or expose a memory leak and UB, see llvm/llvm-pro
Revert "✨ [Sema, Lex, Parse] Preprocessor embed in C and C++ (and Obj-C and Obj-C++ by-proxy)" (#95299)
Reverts llvm/llvm-project#68620
Introduce or expose a memory leak and UB, see llvm/llvm-project#68620
show more ...
|
#
5989450e |
| 12-Jun-2024 |
The Phantom Derpstorm <phdofthehouse@gmail.com> |
[clang][Sema, Lex, Parse] Preprocessor embed in C and C++ (and Obj-C and Obj-C++ by-proxy) (#68620)
This commit implements the entirety of the now-accepted [N3017 -
Preprocessor
Embed](https://www
[clang][Sema, Lex, Parse] Preprocessor embed in C and C++ (and Obj-C and Obj-C++ by-proxy) (#68620)
This commit implements the entirety of the now-accepted [N3017 -
Preprocessor
Embed](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3017.htm) and
its sister C++ paper [p1967](https://wg21.link/p1967). It implements
everything in the specification, and includes an implementation that
drastically improves the time it takes to embed data in specific
scenarios (the initialization of character type arrays). The mechanisms
used to do this are used under the "as-if" rule, and in general when the
system cannot detect it is initializing an array object in a variable
declaration, will generate EmbedExpr AST node which will be expanded
by AST consumers (CodeGen or constant expression evaluators) or
expand embed directive as a comma expression.
---------
Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
Co-authored-by: cor3ntin <corentinjabot@gmail.com>
Co-authored-by: H. Vetinari <h.vetinari@gmx.com>
Co-authored-by: Podchishchaeva, Mariya <mariya.podchishchaeva@intel.com>
show more ...
|
Revision tags: llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4 |
|
#
fca51911 |
| 11-Apr-2024 |
Bill Wendling <5993918+bwendling@users.noreply.github.com> |
[NFC][Clang] Improve const correctness for IdentifierInfo (#79365)
The IdentifierInfo isn't typically modified. Use 'const' wherever
possible.
|
Revision tags: llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3 |
|
#
50275690 |
| 14-Feb-2024 |
Vlad Serebrennikov <serebrennikov.vladislav@gmail.com> |
[clang][NFC] Use "notable" for "interesting" identifiers in `IdentifierInfo` (#81542)
This patch expands notion of "interesting" in `IdentifierInto` it to
also cover ObjC keywords and builtins, whi
[clang][NFC] Use "notable" for "interesting" identifiers in `IdentifierInfo` (#81542)
This patch expands notion of "interesting" in `IdentifierInto` it to
also cover ObjC keywords and builtins, which matches notion of
"interesting" in serialization layer. What was previously "interesting"
in `IdentifierInto` is now called "notable".
Beyond clearing confusion between serialization and the rest of the
compiler, it also resolved a naming problem: ObjC keywords, notable
identifiers, and builtin IDs are all stored in the same bit-field. Now
we can use "interesting" to name it and its corresponding type, instead
of `ObjCKeywordOrInterestingOrBuiltin` abomination.
show more ...
|
Revision tags: llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init |
|
#
a70dcc2c |
| 27-Dec-2023 |
Kazu Hirata <kazu@google.com> |
[clang] Use StringRef::ltrim (NFC)
|
#
f3dcc235 |
| 13-Dec-2023 |
Kazu Hirata <kazu@google.com> |
[clang] Use StringRef::{starts,ends}_with (NFC) (#75149)
This patch replaces uses of StringRef::{starts,ends}with with
StringRef::{starts,ends}_with for consistency with
std::{string,string_view}:
[clang] Use StringRef::{starts,ends}_with (NFC) (#75149)
This patch replaces uses of StringRef::{starts,ends}with with
StringRef::{starts,ends}_with for consistency with
std::{string,string_view}::{starts,ends}_with in C++20.
I'm planning to deprecate and eventually remove
StringRef::{starts,ends}with.
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5 |
|
#
2c658606 |
| 13-Nov-2023 |
PiJoules <6019989+PiJoules@users.noreply.github.com> |
[clang] Remove fixed point arithmetic error (#71884)
Prior to this, clang would always report
```
compile with '-ffixed-point' to enable fixed point types
```
whenever it sees `_Accum`, `_Fr
[clang] Remove fixed point arithmetic error (#71884)
Prior to this, clang would always report
```
compile with '-ffixed-point' to enable fixed point types
```
whenever it sees `_Accum`, `_Fract`, or `_Sat` when fixed point
arithmetic is not enabled. This can break existing code that uses these
as variable names and doesn't use fixed point arithmetic like in some
microsoft headers
(https://github.com/llvm/llvm-project/pull/67750#issuecomment-1775264907).
Fixed point should not raise this error for these cases, so this removes
the error altogether and defaults to the usual error clang gives where
it can see these keywords as either unknown types or regular variables.
show more ...
|
Revision tags: llvmorg-17.0.4 |
|
#
2005f484 |
| 25-Oct-2023 |
Vlad Serebrennikov <serebrennikov.vladislav@gmail.com> |
[clang][NFC] Refactor `Selector` to use `PointerIntPair` inside (#69916)
Refactor `uintptr_t` inside of `clang::Selector` that holds a pointer to `IdentifierInfo` or `MultiKeywordSelector` and `Iden
[clang][NFC] Refactor `Selector` to use `PointerIntPair` inside (#69916)
Refactor `uintptr_t` inside of `clang::Selector` that holds a pointer to `IdentifierInfo` or `MultiKeywordSelector` and `IdentifierInfoFlag` enum into `PointerIntPair`. This is a part of `PointerIntPair` migration outlined in https://github.com/llvm/llvm-project/issues/69835.
Unlike `uintpt_t`, `PointerIntPair` required pointee types to be complete, so I had to shuffle definitions of `MultiKeywordSelector` and `detail::DeclarationNameExtra` around to make them complete at `Selector`. Also, there were outdated specializations of `PointerLikeTypeTraits` for `IdentifierInfo *`, which are no longer needed, because `alignof` that primary template use works just fine. Not just that, but they declared that `IdentifierInfo *` has only 1 spare lower bit, but today they are 8-byte aligned.
show more ...
|
Revision tags: llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0 |
|
#
0009032a |
| 14-Sep-2023 |
Bill Wendling <5993918+bwendling@users.noreply.github.com> |
[NFC] Minimize header includes (#66339)
Minimize the headers included in header files to reduce the number of
files that need recompiled after a change.
|
Revision tags: llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3 |
|
#
9c4ade06 |
| 11-Aug-2023 |
Aaron Ballman <aaron@aaronballman.com> |
[C23] Rename C2x->C23 in diagnostics
This renames C2x to C23 in diagnostic identifiers and messages. The changes were made mechanically.
|
#
0ce056a8 |
| 11-Aug-2023 |
Aaron Ballman <aaron@aaronballman.com> |
[C23] Rename C2x -> C23; NFC
This does the rename for most internal uses of C2x, but does not rename or reword diagnostics (those will be done in a follow-up).
I also updated standards references a
[C23] Rename C2x -> C23; NFC
This does the rename for most internal uses of C2x, but does not rename or reword diagnostics (those will be done in a follow-up).
I also updated standards references and citations to the final wording in the standard.
show more ...
|
Revision tags: llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
5ce5e983 |
| 13-Jul-2023 |
Po-yao Chang <poyaoc97@gmail.com> |
[Clang] Add warnings for CWG2521
1. Teach -Wuser-defined-literals to warn on using double underscores in literal suffix identifiers. 2. Add -Wdeprecated-literal-operator to warn about the use of
[Clang] Add warnings for CWG2521
1. Teach -Wuser-defined-literals to warn on using double underscores in literal suffix identifiers. 2. Add -Wdeprecated-literal-operator to warn about the use of the first grammar production of literal-operator-id, which defaults to off for now.
Differential Revision: https://reviews.llvm.org/D152632
show more ...
|
#
9fc3b4ac |
| 15-Jun-2023 |
Zahira Ammarguellat <Zahira.Ammarguellat@intel.com> |
[clang] Add a namespace for interesting identifiers.
Differential Revision: https://reviews.llvm.org/D146148
|
Revision tags: llvmorg-16.0.6 |
|
#
e3f91aca |
| 07-Jun-2023 |
Sam McCall <sam.mccall@gmail.com> |
Fix namespace of operator<< defn
|
Revision tags: llvmorg-16.0.5, llvmorg-16.0.4 |
|
#
14f07765 |
| 08-May-2023 |
Sam McCall <sam.mccall@gmail.com> |
Reland "Give NullabilityKind a printing operator<<"
This reverts commit 5326c9e480d70e16c2504cb5143524aff3ee2605.
The problem that caused the revert was downstream (missing dep in user of clang).
|
#
5326c9e4 |
| 06-May-2023 |
Caroline Tice <cmtice@google.com> |
Revert "Give NullabilityKind a printing operator<<"
This reverts commit 0a532207b8696d81e46017f444bd2257347f129b.
This breaks several of our tests. Have given reproducers to author. Reverting this
Revert "Give NullabilityKind a printing operator<<"
This reverts commit 0a532207b8696d81e46017f444bd2257347f129b.
This breaks several of our tests. Have given reproducers to author. Reverting this until author can fix the issue.
show more ...
|
Revision tags: llvmorg-16.0.3 |
|
#
0a532207 |
| 02-May-2023 |
Sam McCall <sam.mccall@gmail.com> |
Give NullabilityKind a printing operator<<
This is more useful for debug/test than getNullabilitySpelling: - default form has uglifying underscores - non-default form crashes on NullableResult -
Give NullabilityKind a printing operator<<
This is more useful for debug/test than getNullabilitySpelling: - default form has uglifying underscores - non-default form crashes on NullableResult - both return unhelpfully verbose strings for Unspecified - operator<< works with gtest, formatv, etc
Differential Revision: https://reviews.llvm.org/D149650
show more ...
|
Revision tags: llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3 |
|
#
612f3ac2 |
| 15-Feb-2023 |
Chuanqi Xu <yedeng.yd@linux.alibaba.com> |
[Modules] Remove -fmodules-ts
As the diagnostic message shows, we should remove -fmodules-ts flag in clang/llvm17. Since clang/llvm16 is already branched. We can remove the depreacared flag now.
|
Revision tags: llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
782ac218 |
| 15-Jul-2022 |
Xiang Li <python3kgae@outlook.com> |
[HLSL] Support cbuffer/tbuffer for hlsl.
This is first part for support cbuffer/tbuffer.
The format for cbuffer/tbuffer is BufferType [Name] [: register(b#)] { VariableDeclaration [: packoffset(c#.
[HLSL] Support cbuffer/tbuffer for hlsl.
This is first part for support cbuffer/tbuffer.
The format for cbuffer/tbuffer is BufferType [Name] [: register(b#)] { VariableDeclaration [: packoffset(c#.xyzw)]; ... };
More details at https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-constants
New keyword 'cbuffer' and 'tbuffer' are added. New AST node HLSLBufferDecl is added. Build AST for simple cbuffer/tbuffer without attribute support.
The special thing is variables declared inside cbuffer is exposed into global scope. So isTransparentContext should return true for HLSLBuffer.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D129883
show more ...
|