[PATCH] D96070: [clang] [driver] Enable static linking to libc++

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D96070#2546330 , @MaskRay wrote: > we cannot control `(optional -lc++abi/-lcxxrt/others)`, which is depended by > the installation configuration (e.g. > LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY, or libc++.a as a linker scr

[PATCH] D90457: [clang][driver] Set LTO mode based on input files

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Hey @MaskRay, have you thought about this some more? Or is it too much magic and you'd rather reject it altogether? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90457/new/ https://reviews.llvm.org/D90457

[PATCH] D95915: [clang][driver] Only warn once about invalid -stdlib value

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Is this good to go now? Or still something left? @yaxunl? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D95915/new/ https://reviews.llvm.org/D95915 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.

[PATCH] D95915: [clang][driver] Only warn once about invalid -stdlib value

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGa6439b52088b: [clang][driver] Only warn once about invalid library values (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D95915/new/ ht

[PATCH] D90457: [clang][driver] Set LTO mode based on input files

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. I don't think `.bc` files are affected by this patch since they aren't `types::TY_Object` files, but I might misremember. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90457/new/ https://reviews.llvm.org/D90457 __

[PATCH] D95915: [clang][driver] Only warn once about invalid -stdlib value

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Looks like this broke the tests because `-stdlib` is not a thing on Windows? Would passing a linux `-target x86_64-linux-gnu` be an appropriate fix for the tests? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D95915/new/ h

[PATCH] D95536: [clang][sema] Note decl location on missing member

2021-02-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D95536#2552258 , @aaron.ballman wrote: > In D95536#2551332 , @tbaeder wrote: > >> Any update on this? > > Thank you for the patch! Do you have some motivating examples of when this > wo

[PATCH] D95536: [clang][sema] Note decl location on missing member

2021-02-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D95536#2557197 , @aaron.ballman wrote: > Hmm... I feel like the diagnostic should already be sufficient to locate the > originating location of the class or namespace and the note is adding a bit > more (almost, but not quite

[PATCH] D96070: [clang] [driver] Enable static linking to libc++

2021-02-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder abandoned this revision. tbaeder added a comment. Thanks for the input everyone. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D96070/new/ https://reviews.llvm.org/D96070 ___ cfe-commits mailing l

[PATCH] D97271: [clang][parse] Remove dead ProhibitAttributes() call

2021-02-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added a reviewer: aaron.ballman. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Since `MaybeParseGNUAttributes()` only takes a `ParsedAttributes` and not a `ParsedAttributesWithRange`, the so

[PATCH] D97271: [clang][parse] Remove dead ProhibitAttributes() call

2021-02-23 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG64d06ed9c9e0: [clang][parse][NFC] Remove dead ProhibitAttributes() call (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D97362: [clang][parser] Allow attributes in explicit template instantiations

2021-02-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added a reviewer: aaron.ballman. Herald added a subscriber: jdoerfert. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This call to ProhibitAttributes() is almost always dead code. For GNU att

[PATCH] D97371: [clang][parser] Remove questionable ProhibitAttributes() call in objc parsing

2021-02-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, rsmith. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Clang uses GNU-style attributes in objc code in (for example, I guess?) `tests/Parser/stmt-attributes.m`

[PATCH] D97445: [clang][sema] Ignore xor-used-as-pow if both sides are macros

2021-02-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: xbolva00, aaron.ballman. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. I've read both https://reviews.llvm.org/D63423 and https://reviews.llvm.org/D66397, but I think both o

[PATCH] D97445: [clang][sema] Ignore xor-used-as-pow if both sides are macros

2021-02-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG2cc58463caf4: [clang][sema] Ignore xor-used-as-pow if both sides are macros (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D97445?vs=326294&id=326386#toc Repository: rG LLVM

[PATCH] D97445: [clang][sema] Ignore xor-used-as-pow if both sides are macros

2021-02-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Thanks everyone! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D97445/new/ https://reviews.llvm.org/D97445 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.ll

[PATCH] D104899: [clang][tests] Specify unwindlib in aix-ld tests

2021-06-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added a reviewer: tstellar. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Clang can be configured with a different default unwindlib, for example gcc. In that case, `-lunwind` will not be pre

[PATCH] D104899: [clang][tests] Specify unwindlib in aix-ld tests

2021-06-26 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG3255db4919f1: [clang][tests] Specify unwindlib in aix-ld tests (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104899/new/ https://revi

[PATCH] D113246: [clang][tests] Fix expected output of plugin-attribute test

2021-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added a reviewer: psionic12. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. The output contains "const char[11]", not "const char [11]". I don't think this test is being run in CI at all beca

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. Herald added a subscriber: dang. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. >From GCC's manpage: -fplugin-arg-name-key=value Define an argument called key with a value of value for the plugin

[PATCH] D97362: [clang][parser] Allow attributes in explicit template instantiations

2021-02-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 326882. tbaeder added a comment. You are right of course. I changed the diff to allow GNU-style attributes and reject everything else. This is a bit hairy because `[[]]` is an empty attribute list but the `SourceRange` is still valid. We don't know if the s

[PATCH] D97371: [clang][parser] Remove questionable ProhibitAttributes() call in objc parsing

2021-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Well we test them on `@try` in `tests/Parser/stmt-attributes.m`, but they are not being diagnosed as invalid. Should I instead keep the `ProhibitAttributes()` call and change the test to make sure they //are// being diagnosed? Repository: rG LLVM Github Monorepo CH

[PATCH] D97371: [clang][parser] Remove questionable ProhibitAttributes() call in objc parsing

2021-03-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. They are being applied to the `@try` at least (`-ast-print` prints them) and we do some error checking for missing call expressions in `handleNoMergeAttr()` in `SemaStmtAttr.cpp`. I don't know much about Objective C so I am not sure how to check that the attribute reall

[PATCH] D97362: [clang][parser] Allow attributes in explicit template instantiations

2021-03-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/Parse/ParseDeclCXX.cpp:1828-1830 + // Allow only GNU attributes here. + if (!attrs.hasOnlyGNUAttributes()) +ProhibitAttributes(attrs); aaron.ballman wrote: > We really should be using `Prohibi

[PATCH] D97362: [clang][parser] Allow attributes in explicit template instantiations

2021-03-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 327718. tbaeder added a comment. Thanks for the suggestions, Aaron. The new version seems to work but I was not sure how to get the token at a source location. I could only find `Lexer::findNextToken()`. CHANGES SINCE LAST ACTION https://reviews.llvm.org

[PATCH] D97362: [clang][parser] Allow attributes in explicit template instantiations

2021-03-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/Parse/ParseDecl.cpp:1618 + +if (Tok && (*Tok).is(tok::l_square)) { + Diag(Attrs.Range.getBegin(), diag::err_attributes_not_allowed) << Attrs.Range; aaron.ballman wrote: > This will incorrectly classif

[PATCH] D89942: Disable LTO and LLD for bootstrap builds on systems unsupported by LLD

2021-03-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 329309. tbaeder added a comment. Just re-tested this on a SystemZ machine and found that the `set()` in `clang/CMakeLists.txt` were not actually being applied. I also made it disable LLD on SystemZ as well, as you suggested. And I added a warning when `BOOT

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 388129. tbaeder added a comment. I already had a test but forgot to add the file to my local git commit, sorry. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113250/new/ https://reviews.llvm.org/D113250 Files: clang/docs/ClangPlugins.rst clang/

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/Driver/ToolChains/Clang.cpp:6625 +auto ArgValue = StringRef(A->getValue()); +auto FirstDashIndex = ArgValue.find('-'); +auto Arg = ArgValue.substr(FirstDashIndex + 1); MaskRay wrote: > What if First

[PATCH] D113246: [clang][tests] Fix expected output of plugin-attribute test

2021-11-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder abandoned this revision. tbaeder added a comment. Already fixed by 50082e1882ae7fe101e563c5e18a27e0804d517b Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113246/new/ htt

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 388417. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113250/new/ https://reviews.llvm.org/D113250 Files: clang/docs/ClangPlugins.rst clang/docs/ReleaseNotes.rst clang/examples/CallSuperAttribute/CallSuperAttrInfo.cpp clang/include/clang/Driv

[PATCH] D114229: [clang][driver] Always add LTO options when using GNU toolchain

2021-11-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: MaskRay, fhahn, tejohnson. Herald added subscribers: ormris, steven_wu, hiraditya, inglorion. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is what the GCC driver does a

[PATCH] D114229: [clang][driver] Always add LTO options when using GNU toolchain

2021-11-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. The test failures are pretty obvious about when this fails. All affected builds have an implicit dependency on the `LLVMgold.so` like this. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D114229/new/ https://reviews.llvm.org

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 388853. tbaeder added a comment. Added two new warning types and used them for diagnosing malformed `-fplugin-arg` options. Also added tests for that. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113250/new/ https://reviews.llvm.org/D113250 Files

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 13 inline comments as done. tbaeder added inline comments. Comment at: clang/test/Driver/plugin-driver-args.cpp:11 +// Dashes cannot be part of the plugin name here +// RUN: %clang -fplugin=%llvmshlibdir/CallSuperAttr%pluginext -fplugin-arg-call_super_plugin-help-

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 389121. tbaeder marked an inline comment as done. tbaeder added a comment. Addressed review comments and fixed the tests CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113250/new/ https://reviews.llvm.org/D113250 Files: clang/docs/ClangPlugins.rst

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Hey @MaskRay, I know you've already approved but just to be sure: does the last round of changes look good? Thanks CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113250/new/ https://reviews.llvm.org/D113250 ___ cfe-c

[PATCH] D113250: [clang][driver] Add -fplugin-arg- to pass arguments to plugins

2021-11-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG3e67cf21a19a: [clang][driver] Add -fplugin-arg- to pass arguments to plugins (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113250/new/

[PATCH] D136017: [clang][Interp] Materializing primitive temporaries

2022-10-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:513 + + if (!this->emitSetLocal(PT_Sint32, *LocalIndex, E)) +return false; shafik wrote: > Should this use `*SubExprT` instead? Ah, yes. Thanks! Co

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:144 + +if (!this->emitCast(*FromT, PT_Float, CE)) + return false; sepavloff wrote: > Does this two-stage conversion make sense? In contrast to things like > `PT_Sint8` `

[PATCH] D136013: [clang][Interp] Fix ignoring expression return values

2022-10-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/records.cpp:208 + +struct S { + int a = 0; aaron.ballman wrote: > Hmmm, this feels related to the discarded value results changes, but it might > be a test case for a different scenario as well, s

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Floating.h:54-62 + explicit operator int8_t() const { return toAPSInt().getExtValue(); } + explicit operator uint8_t() const { return toAPSInt().getExtValue(); } + explicit operator int16_t() const { return toAPSI

[PATCH] D136017: [clang][Interp] Materializing primitive temporaries

2022-10-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 468895. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136017/new/ https://reviews.llvm.org/D136017 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcod

[PATCH] D135513: [clang][Interp] Check instance pointers before calling functions on them

2022-10-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 468905. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135513/new/ https://reviews.llvm.org/D135513 Files: clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Interp/Function.cpp clang/lib/AST/Interp/Inte

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469166. tbaeder added a comment. Another (and even longer) version. Introduce special opcodes for floating point operations and pass the rounding mode to them. Also create special int->float and float->int casts so we can handle that properly. This makes `

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469173. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/ExprConstant.cpp clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp cl

[PATCH] D135366: [clang][Interp] Implement String- and CharacterLiterals

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. I've moved the tests to `literals.cpp`, is there anything else left? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135366/new/ https://reviews.llvm.org/D135366 ___ cfe-commits mailing list cfe-commits@lists.llvm.org h

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. @aaron.ballman Do you maybe have a different reproducer or know more about the expected behavior of a `ImplicitValueInitExpr` for array and record types? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 ___

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135750/new/ https://reviews.llvm.org/D135750 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D135764: [clang][Interp] Implement for loops

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135764/new/ https://reviews.llvm.org/D135764 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D135764: [clang][Interp] Implement for loops

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeStmtGen.cpp:361 + this->emitLabel(IncLabel); + if (Inc && !this->discard(Inc)) +return false; aaron.ballman wrote: > What does the call to `dis

[PATCH] D135764: [clang][Interp] Implement for loops

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/loops.cpp:271 + /// be rejected. + constexpr int f6() { +while(true); aaron.ballman wrote: > Another test to add here: `for (;;);` is just as infinite. Heh, that's what this was supposed to

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D135013#3871209 , @aaron.ballman wrote: > In D135013#3870894 , @tbaeder wrote: > >> @aaron.ballman Do you maybe have a different reproducer or know more about >> the expected behavior

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469230. tbaeder added a comment. Thinking about it some more, doesn't make much sense to add all that right now when we don't have a reproducer to test it anyway. I think the patch as it is makes sense and it it's not enough in the future, there's a proper a

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469243. tbaeder marked 3 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/arrays.cpp Index: clang/test/AST/

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This only works on integrals for now. Add four new

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:726 + } else if (const auto *IVIE = dyn_cast(Initializer)) { +const ArrayType *ArrayType = IVIE->getType()->getAsArrayTypeUnsafe(); +assert(Array

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. tbaeder marked an inline comment as done. Closed by commit rG09bbc903a5b4: [clang][Interp] Array initialization via ImplicitValueInitExpr (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D135013?vs

[PATCH] D135025: [clang][Interp] Support base class constructors

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG9cb4e90e7260: [clang][Interp] Support base class constructors (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D135025?vs=

[PATCH] D136435: [clang][Driver] Add gcc-toolset-12 and devtoolset-12 prefixes

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: thieta, MaskRay, tstellar. Herald added a subscriber: StephenFan. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This reverts commit 35aaf548237a4

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469527. tbaeder marked 5 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/ExprConstant.cpp clang/lib/AST/Interp/Boolean.h cla

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469530. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136423/new/ https://reviews.llvm.org/D136423 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/ExprConstant.cpp clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp cl

[PATCH] D136017: [clang][Interp] Materializing primitive temporaries

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:574 +/// 3) Initialized global with index \I with that +template ::T> +bool InitGlobalTemp(InterpState &S, CodePtr OpPC, uint32_t I, shafik wrote: > tbaeder wrote: > > shafik wrote: > > > Is

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:612 + case PT_Float: +assert(false); } I left the implementation of this out since `visitZeroInitializer()` is dead code right now anyway and the patch is already large e

[PATCH] D136012: [clang][Interp] Fix record members of reference type

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469580. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136012/new/ https://reviews.llvm.org/D136012 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/Interp/Interp.h clang/test/AST/Interp/re

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469589. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136423/new/ https://reviews.llvm.org/D136423 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td clang/test/AST/Interp/arrays.cpp

[PATCH] D136457: [clang][Interp] Fix discarding non-primitive function call return values

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. As briefly discussed in https://reviews.llvm.org/D1

[PATCH] D135513: [clang][Interp] Check instance pointers before calling functions on them

2022-10-22 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGcc79ddb52c31: [clang][Interp] Check instance pointers before calling functions on them (authored by tbaeder). Repository: rG LLVM Github Monorepo

[PATCH] D135858: [clang][Interp] Support pointer arithmetic in binary operators

2022-10-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469875. tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135858/new/ https://reviews.llvm.org/D135858 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Inter

[PATCH] D136528: [clang][Interp] Implement add and sub compound assign operators

2022-10-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Repository: rG LLVM Github Monorepo https://revi

[PATCH] D134958: [clang][Interp] Support __builtin_clz calls

2022-10-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder abandoned this revision. tbaeder added a comment. Let's shelve this until later. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134958/new/ https://reviews.llvm.org/D134958 ___ cfe-commits mailing

[PATCH] D136532: [clang][Interp] Implement left and right shifts

2022-10-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Add a test case based on `test/SemaCXX/shift.cpp`.

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469971. tbaeder added a comment. Handle integer over- and underflows. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136423/new/ https://reviews.llvm.org/D136423 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Interp.h cla

[PATCH] D136528: [clang][Interp] Implement add and sub compound assign operators

2022-10-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470138. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136528/new/ https://reviews.llvm.org/D136528 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/test/AST/I

[PATCH] D136528: [clang][Interp] Implement add and sub compound assign operators

2022-10-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/literals.cpp:426 + } + static_assert(subAll(213) == 0); + aaron.ballman wrote: > We also need tests for failure situations: > ``` > constexpr int func() { > int i = __INT_MAX__; > i += 1; // o

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470159. tbaeder marked 3 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136423/new/ https://reviews.llvm.org/D136423 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opco

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1237-1240 +if (DiscardResult) + return this->emitIncPop(*T, E); + +return this->emitInc(*T, E); aaron.ballman wrote: > Style question: should we prefer doing somethin

[PATCH] D136423: [clang][Interp] Implement inc/dec postfix and prefix operators

2022-10-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470163. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136423/new/ https://reviews.llvm.org/D136423 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td clang/test/AST/Interp/arrays.cpp

[PATCH] D136012: [clang][Interp] Fix record members of reference type

2022-10-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:867 - if (Optional T = classify(Init->getType())) { + if (Optional T = classify(Init)) { if (!this->visit(Init)) sha

[PATCH] D136532: [clang][Interp] Implement left and right shifts

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:1246-1256 if (V.isSigned() && !S.getLangOpts().CPlusPlus20) { // C++11 [expr.shift]p2: A signed left shift must have a non-negative // operand, and must not overflow the corresponding unsigned t

[PATCH] D136435: [clang][Driver] Add gcc-toolset-12 and devtoolset-12 prefixes

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470390. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136435/new/ https://reviews.llvm.org/D136435 Files: clang/lib/Driver/ToolChains/Gnu.cpp clang/unittests/Driver/ToolChainTest.cpp Index: clang/unittests/Driver/ToolChainTest.cpp ==

[PATCH] D136532: [clang][Interp] Implement left and right shifts

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470391. tbaeder added a comment. Excuse the code duplication here, I'll get rid of it as soon as we all agree that the functionality is correct. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136532/new/ https://reviews.llvm.org/D136532 Files: cl

[PATCH] D136457: [clang][Interp] Fix discarding non-primitive function call return values

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1158 + +if (DiscardResult && !T) { + // If we need to discard the return value but the function returns its shafik wrote: > Coul

[PATCH] D136457: [clang][Interp] Fix discarding non-primitive function call return values

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470392. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136457/new/ https://reviews.llvm.org/D136457 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/records.cpp Index: clang/test/AST

[PATCH] D135858: [clang][Interp] Support pointer arithmetic in binary operators

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470400. tbaeder marked 5 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135858/new/ https://reviews.llvm.org/D135858 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/In

[PATCH] D136670: [clang][Interp] Fix InterpFrame::describe() for This pointers

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Since we pass this via the stack, we need to acco

[PATCH] D136694: [clang][Interp] Check that constructor calls initialize all record fields

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. We need to do this, even for global variables (it s

[PATCH] D136435: [clang][Driver] Add gcc-toolset-12 and devtoolset-12 prefixes

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG4a5184f4c357: [clang][driver] Remove dynamic gcc-toolset/devtoolset logic (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136435/new/ h

[PATCH] D135764: [clang][Interp] Implement for loops

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGf6f02e090072: [clang][Interp] Implement for loops (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D135764?vs=467089&id=470727#toc Repository: rG LLVM Github Monorepo CHANGES

[PATCH] D136670: [clang][Interp] Fix InterpFrame::describe() for This pointers

2022-10-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGf007c99ed12f: [clang][Interp] Fix InterpFrame::describe() for This pointers (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136670/new/

[PATCH] D136694: [clang][Interp] Check that constructor calls initialize all record fields

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470750. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136694/new/ https://reviews.llvm.org/D136694 Files: clang/lib/AST/Interp/Descriptor.cpp clang/lib/AST/Interp/Interp.cpp clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/InterpFrame.cpp

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is a c++20 extension as far as I know. Repos

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 470724. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135750/new/ https://reviews.llvm.org/D135750 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/

[PATCH] D135366: [clang][Interp] Implement String- and CharacterLiterals

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135366/new/ https://reviews.llvm.org/D135366 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135750/new/ https://reviews.llvm.org/D135750 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D136815: [clang][Interp] Ignore visitDecl() for local declarations

2022-10-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. We reach visitDecl() for both local and global va

[PATCH] D136826: [clang][Interp] Make sure we free() allocated InitMaps

2022-10-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. They get allocated when calling `initialize()` on a

[PATCH] D136831: [clang][Interp] Protect Record creation against infinite recusion

2022-10-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This only happens in error cases as far as I know,

[PATCH] D136532: [clang][Interp] Implement left and right shifts

2022-10-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 471113. tbaeder marked 3 inline comments as done. tbaeder added a comment. Added suport for `>>=` and `<<=` as well so the test cases for those can be enabled. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136532/new/ https://reviews.llvm.org/D1365

<    1   2   3   4   5   6   7   8   9   10   >