From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Bob Floyd" Newsgroups: gmane.emacs.bugs Subject: bug#48628: tags-search fails to find all occurences and finds one that it shouldn't Date: Mon, 24 May 2021 09:02:54 -0700 Message-ID: <004501d750b6$42458040$c6d080c0$@net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0046_01D7507B.95E6A840" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3186"; mail-complaints-to="usenet@ciao.gmane.io" To: 48628@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon May 24 18:04:12 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1llD3r-0000c5-IQ for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 24 May 2021 18:04:11 +0200 Original-Received: from localhost ([::1]:34798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1llD3q-0000Yv-K4 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 24 May 2021 12:04:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36374) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llD3i-0000TJ-AH for bug-gnu-emacs@gnu.org; Mon, 24 May 2021 12:04:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60437) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1llD3i-0007BS-2M for bug-gnu-emacs@gnu.org; Mon, 24 May 2021 12:04:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1llD3h-0007Of-SW for bug-gnu-emacs@gnu.org; Mon, 24 May 2021 12:04:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Bob Floyd" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 24 May 2021 16:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 48628 X-GNU-PR-Package: emacs X-Debbugs-Original-To: Original-Received: via spool by submit@debbugs.gnu.org id=B.162187218728335 (code B ref -1); Mon, 24 May 2021 16:04:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 24 May 2021 16:03:07 +0000 Original-Received: from localhost ([127.0.0.1]:43750 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llD2o-0007Mw-8U for submit@debbugs.gnu.org; Mon, 24 May 2021 12:03:07 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:46538) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llD2l-0007Mk-PW for submit@debbugs.gnu.org; Mon, 24 May 2021 12:03:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36174) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llD2l-0006BJ-HZ for bug-gnu-emacs@gnu.org; Mon, 24 May 2021 12:03:03 -0400 Original-Received: from resqmta-po-09v.sys.comcast.net ([2001:558:fe16:19:96:114:154:168]:43368) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llD2h-0006n0-Bb for bug-gnu-emacs@gnu.org; Mon, 24 May 2021 12:03:02 -0400 Original-Received: from resomta-po-06v.sys.comcast.net ([96.114.154.230]) by resqmta-po-09v.sys.comcast.net with ESMTP id lCL7l4oY16cSdlD2dlY9lo; Mon, 24 May 2021 16:02:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=20190202a; t=1621872175; bh=jmkDIsNwOQ1tEdW+Uwug6ouAgUhlAmd/G2AAhEaFxEc=; h=Received:Received:From:To:Subject:Date:Message-ID:MIME-Version: Content-Type; b=x2/35vHY6IP8AF5tLE2qn+rGYryYL14KJp6YC9Wh8XrIxWWdMPNcKYvK5VUsXVtSD DMQJNOtBewWWL2viNHiAb8VPra14AnSWDUA9LhsqZgFtjaUPfcGCImaWwLyPJQEVsV T6DyIKELGz/GQghRYyfGWnND3wJoFT5wEriJc9lnpdzQEGS0r9RlmRdLl6Z0p3x9E+ hI/3Ro9/Na+w9RtPfTOzMJ67wrJEzy/AWDgLMEm3Y+Z25JJF026rOUH8DtY6133nmQ 30w53TUb4KmQNE3fWg3u1SysyBYhZl0mo72bHq0Xdbs04tKfkILUR2fxnbGsXrsVhP 9dxnxSf6MVK1Q== Original-Received: from Cache ([IPv6:2601:647:6100:3b1c::87]) by resomta-po-06v.sys.comcast.net with ESMTPA id lD2clsWtVsKGUlD2dltk0j; Mon, 24 May 2021 16:02:55 +0000 X-Xfinity-VMeta: sc=0.00;st=legit X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AddQtkHDLqdWlQwuQpqTF3JblRA0pQ== Content-Language: en-us Received-SPF: pass client-ip=2001:558:fe16:19:96:114:154:168; envelope-from=bobfloyd@comcast.net; helo=resqmta-po-09v.sys.comcast.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:207130 Archived-At: This is a multi-part message in MIME format. ------=_NextPart_000_0046_01D7507B.95E6A840 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0047_01D7507B.95E6A840" ------=_NextPart_001_0047_01D7507B.95E6A840 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, Attached are 3 files, 'f1.cpp', 'f2.cpp', and 'TAGS'. I'm using the development 28.0.50 version on Windows. Start emacs and: 1. C-x 2 (split-window-below) 2. C-x C-f (find-file) "f1.cpp" in the upper window 3. C-x C-f (find-file) "f2.cpp" in the lower window 4. left-mouse click in the upper window top left (location of the search start) 5. (tags-search) the string "_cu" using the attached TAGS file Tags search (regexp): _cu 6. M-, (fileloop-continue) until reaching "All files processed" The matches are on lines: f1.cpp: 7, 25, 65, 104, 121 f2.cpp: 7, 25, 65, 104, 121 (both f1 and f2 have identical contents). 7. In the upper window, switch to buffer f1.cpp and go to line 53: 8. mark line 53 and move down to line 72, then delete the selection: You're deleting this: case ECall::DPI::_pow_: { IT::IAcc _one ( R()->c1.CastTo( _ty ) ); IT::IAcc _zero( R()->c0.CastTo( _ty ) ); IT::IAcc _condBase ( _theFunction.Arg(0) .EqEq( IT::FlagsOfIKind(), _zero ) ); IT::IAcc _condExp ( _theFunction.Arg(1) .LT( IT::FlagsOfIKind(), _zero ) ); // Specialize to capture `0 ** 0` and return 1. IT::IfHlpr _testSpcl ( _cu, _condBase .AndAnd (IT::FlagsOfIKind(), _condExp), IT::List() ); _testSpcl.True() << _one.Return(); _body << _testSpcl; break; } 9. M-< (beginning-of-buffer) in the upper window ("f1.cpp") 10. (tags-search) the string "_cu" Tags search (regexp): _cu 11. M-, (fileloop-continue) until reaching "All files processed" The matches are on lines: 7, 25, 85, 102, 115, 121 NOTE 115 is wrong, it is this line that does not contain "_cu" # ifdef C_FILE_GENERATOR NOTE only 1 of the "_cu"s was deleted so instead of 10 occurrences there should be 9 BUT it only found 6. In GNU Emacs 28.0.50 (build 1, x86_64-w64-mingw32) of 2021-01-15 built on CIRROCUMULUS Repository revision: f45be48ddbde00610e1e08fca6590dcf24a4e1b5 Repository branch: master Windowing system distributor 'Microsoft Corp.', version 10.0.19042 System Description: Microsoft Windows 10 Enterprise (v10.0.2009.19042.985) Configured using: 'configure --without-dbus --without-compress-install -C 'CFLAGS=-O2 -static -g3' PKG_CONFIG_PATH=/mingw64/lib/pkgconfig' Configured features: ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XPM ZLIB Important settings: value of $LANG: ENU locale-coding-system: cp1252 Major mode: Fundamental Minor modes in effect: shell-dirtrack-mode: t show-paren-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils misearch multi-isearch two-column help-mode thingatpt etags fileloop generator xref project time-date pcmpl-unix web-mode advice derived edmacro kmacro shell pcomplete comint ansi-color ring printing ps-print ps-print-loaddefs ps-def lpr paren cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs finder-inf tex-site info package easymenu browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 192149 7744) (symbols 48 14547 1) (strings 32 50102 1978) (string-bytes 1 1608447) (vectors 16 21762) (vector-slots 8 294115 19624) (floats 8 263 356) (intervals 56 3062 0) (buffers 984 18)) ------=_NextPart_001_0047_01D7507B.95E6A840 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi,

 

Attached are = 3 files, ‘f1.cpp’, ‘f2.cpp’, and = ‘TAGS’.

 

I’m = using the development 28.0.50 version on Windows.

 

Start emacs = and:

 

1. C-x 2 (split-window-below)

2. C-x C-f (find-file) "f1.cpp" in the upper = window

3. C-x C-f (find-file) = "f2.cpp" in the lower window

4. left-mouse click in the upper window top left = (location of the search start)

5. = <f3> (tags-search) the string "_cu" using the attached = TAGS file

   Tags search = (regexp): _cu

6. M-, = (fileloop-continue) until reaching "All files = processed"

   The = matches are on lines:

   = f1.cpp: 7, 25, 65, 104, 121

   f2.cpp: 7, 25, 65, 104, = 121

   (both f1 and f2 have = identical contents).

7. In the upper = window, switch to buffer f1.cpp and go to line 53:

8. mark line 53 and move down to line 72, then delete = the selection:

   You're = deleting this:

   case = ECall::DPI::_pow_:

      {

         &= nbsp;      = IT::IAcc           = ;      _one ( R()->c1.CastTo( _ty ) = );

         &= nbsp;      = IT::IAcc           = ;      _zero( R()->c0.CastTo( _ty ) = );

         &= nbsp;      = IT::IAcc           = ;      _condBase

         &= nbsp;      ( _theFunction.Arg(0) .EqEq( = IT::FlagsOfIKind(), _zero ) );

         &= nbsp;      = IT::IAcc           = ;      _condExp

         &= nbsp;      ( _theFunction.Arg(1) .LT( = IT::FlagsOfIKind(), _zero ) );

 

         &= nbsp;      // Specialize to capture `0 ** 0` = and return 1.

 

         &= nbsp;      = IT::IfHlpr          &nb= sp;   _testSpcl

         &= nbsp;      ( _cu, _condBase .AndAnd = (IT::FlagsOfIKind(), _condExp), IT::List() );

 

         &= nbsp;      _testSpcl.True() << = _one.Return();

 

         &= nbsp;      _body << = _testSpcl;

 

         &= nbsp;      break;

      }

9. M-< (beginning-of-buffer) in the upper window = (“f1.cpp”)

10. <f3> = (tags-search) the string "_cu"

   Tags search (regexp): = _cu

11. M-, (fileloop-continue) until = reaching "All files processed"

   The matches are on = lines:

   7, 25, 85, 102, = 115, 121

   NOTE 115 is = wrong, it is this line that does not contain = "_cu"

#     ifdef = C_FILE_GENERATOR

   NOTE = only 1 of the "_cu"s was deleted so instead of 10 occurrences = there

   should be 9 BUT it = only found 6.

 

 

 

In GNU Emacs = 28.0.50 (build 1, x86_64-w64-mingw32)

of 2021-01-15 built on CIRROCUMULUS

Repository revision: = f45be48ddbde00610e1e08fca6590dcf24a4e1b5

Repository branch: master

Windowing system distributor 'Microsoft Corp.', = version 10.0.19042

System = Description: Microsoft Windows 10 Enterprise = (v10.0.2009.19042.985)

 

Configured = using:

'configure --without-dbus = --without-compress-install -C 'CFLAGS=3D-O2

-static -g3' = PKG_CONFIG_PATH=3D/mingw64/lib/pkgconfig'

 

Configured = features:

ACL GIF GMP GNUTLS HARFBUZZ = JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY

W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF = TOOLKIT_SCROLL_BARS XPM

ZLIB

 

Important = settings:

  value of $LANG: = ENU

  locale-coding-system: = cp1252

 

Major mode: Fundamental

 

Minor modes = in effect:

  = shell-dirtrack-mode: t

  = show-paren-mode: t

  = tooltip-mode: t

  = global-eldoc-mode: t

  = electric-indent-mode: t

  = mouse-wheel-mode: t

  = menu-bar-mode: t

  = file-name-shadow-mode: t

  = global-font-lock-mode: t

  = font-lock-mode: t

  = blink-cursor-mode: t

  = auto-composition-mode: t

  = auto-encryption-mode: t

  = auto-compression-mode: t

  = line-number-mode: t

  = transient-mark-mode: t

 

Load-path = shadows:

None found.

 

Features:

(shadow = sort mail-extr emacsbug message rmc puny dired = dired-loaddefs

rfc822 mml mml-sec epa = epg epg-config gnus-util rmail rmail-loaddefs

text-property-search mm-decode mm-bodies mm-encode = mail-parse rfc2231

mailabbrev = gmm-utils mailheader sendmail rfc2047 rfc2045 = ietf-drums

mm-util mail-prsvr = mail-utils misearch multi-isearch two-column

help-mode thingatpt etags fileloop generator xref = project time-date

pcmpl-unix web-mode = advice derived edmacro kmacro shell pcomplete comint

ansi-color ring printing ps-print ps-print-loaddefs = ps-def lpr paren

cc-mode cc-fonts = cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine

cc-vars cc-defs finder-inf tex-site info package = easymenu browse-url url

url-proxy = url-privacy url-expand url-methods url-history = url-cookie

url-domsuf url-util = mailcap url-handlers url-parse auth-source cl-seq

eieio eieio-core cl-macs eieio-loaddefs password-cache = json subr-x map

url-vars seq byte-opt = gv bytecomp byte-compile cconv cl-loaddefs cl-lib

iso-transl tooltip eldoc electric uniquify ediff-hook = vc-hooks

lisp-float-type mwheel = dos-w32 ls-lisp disp-table term/w32-win w32-win

w32-vars term/common-win tool-bar dnd fontset image = regexp-opt fringe

tabulated-list = replace newcomment text-mode elisp-mode lisp-mode

prog-mode register page tab-bar menu-bar rfn-eshadow = isearch timer

select scroll-bar mouse = jit-lock font-lock syntax facemenu font-core

term/tty-colors frame minibuffer cl-generic cham = georgian utf-8-lang

misc-lang = vietnamese tibetan thai tai-viet lao korean japanese = eucjp-ms

cp51932 hebrew greek = romanian slovak czech european ethiopic indian

cyrillic chinese composite charscript charprop = case-table epa-hook

jka-cmpr-hook = help simple abbrev obarray cl-preloaded nadvice button

loaddefs faces cus-face macroexp files window = text-properties overlay

sha1 md5 = base64 format env code-pages mule custom widget

hashtable-print-readable backquote threads w32notify = w32 lcms2 multi-tty

make-network-process emacs)

 

Memory = information:

((conses 16 192149 = 7744)

(symbols 48 14547 = 1)

(strings 32 50102 = 1978)

(string-bytes 1 = 1608447)

(vectors 16 = 21762)

(vector-slots 8 294115 = 19624)

(floats 8 263 = 356)

(intervals 56 3062 = 0)

(buffers 984 = 18))

------=_NextPart_001_0047_01D7507B.95E6A840-- ------=_NextPart_000_0046_01D7507B.95E6A840 Content-Type: text/plain; name="f1.cpp" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="f1.cpp" namespace PT { ConstFP::Fcn ConstFP::PrecisionsOfOneFcn:: CreateFcn( TyAcc const& _ty ) const { CompilationUnit& _cu ( G->CU() ); TpSgmtCntnr _pSC ( new SgmtCntnrSC ); IObj _iDolRootScope ( G->GetHierarchy().DolRootScope() ); ILexObj _iLexDolRootScope( _iDolRootScope->GetLexScope() = ); typedef TypeList::Result TMods; std::vector _myArgs( nArgs() ); VariableSymbol _arg( TMods(), _ty ); for ( int _i( 0 ); _i < nArgs(); ++_i ) { std::stringstream _nmArg; _nmArg << "_arg" << _i; ITracks _iArg ( = _iDolRootScope.TrackFactory(_nmArg.str(),_arg,(*_pSC),_cu= ) ); _myArgs[ _i ] =3D _iArg; } std::stringstream _nmFcn; _nmFcn << "!" << ECall::DPI(myDpiId).Id(); switch ( myDpiId ) { case ECall::DPI::_pow_: _nmFcn << "Wrapr"; default: break; } _nmFcn << R()->GetNextDLLid(); IT::FcnDclHlpr _theFunction( (*_pSC), _ty, _nmFcn, = IT::TFcn::_dllExport_ ); for ( int _i( 0 ); _i < nArgs(); ++_i ) _theFunction << IT::IAcc( Expr( _myArgs[ _i ], NuVloc() ) ); IT::List _body; switch ( myDpiId ) { case ECall::DPI::_pow_: { IT::IAcc _one ( R()->c1.CastTo( _ty ) ); IT::IAcc _zero( R()->c0.CastTo( _ty ) ); IT::IAcc _condBase ( _theFunction.Arg(0) .EqEq( IT::FlagsOfIKind(), _zero ) ); IT::IAcc _condExp ( _theFunction.Arg(1) .LT( IT::FlagsOfIKind(), _zero ) ); // Specialize to capture `0 ** 0` and return 1. IT::IfHlpr _testSpcl ( _cu, _condBase .AndAnd (IT::FlagsOfIKind(), _condExp), IT::List() ); _testSpcl.True() << _one.Return(); _body << _testSpcl; break; } default: break; } IT::List _itActualList; for ( int _i( 0 ); _i < nArgs(); ++_i ) _itActualList << IT::IAcc( Expr( _myArgs[ _i ], NuVloc() ) = ).FcnArg(); IT::IAcc _theLibmCall( _itActualList.Head() .CallDpi( _ty, DpiProto(), myDpiId, IT::FlagsOfIKind() ) ); _body << _theLibmCall.Return(); _theFunction << _body.Head(); typedef SgmtCntnr::IBrndToSmblsWthLval IBrndToSmblsWthLval; typedef SgmtCntnr::BtoSwLkey BtoSwLkey; TpSignature _noSig ( new Signature ); TBranding* _branding ( new TBranding ); TIBranding _iBranding ( _branding->Insert( _iLexDolRootScope,Brands() ).first ); TpBrand _pBrand ( new Brand( _iBranding ) ); RefPtr_oneBrand( new Brands( _noSig, _pBrand ) ); IBrands _iBrands = (IPair((*_oneBrand).begin(),true)); IBrndToSmblsWthLval _iBtoWsl( (*_pSC)->Get( BtoSwLkey( _iBrands ) ) = ); OneGeste _theGeste ( R()->terminusStmt, _iLexDolRootScope, _iDolRootScope, DLLobject() = ); IT::TpLlVmGenerator _pLlVm ( _cu.LlVmGeneratorFactory( true/*isCommonToAllCUs*/ ) ); _theGeste.SetClosure( _theFunction ); _pSC->AllocLvalToGeste( _iBrands, _theGeste ); _pLlVm->AtFunction( (*_pSC), _iBrands, _iBtoWsl, _theGeste ); switch ( myDpiId ) { # ifdef C_FILE_GENERATOR case ECall::DPI::_pow_: _pSC->AddRef(); _pBrand->AddRef(); _oneBrand->AddRef(); _noSig->AddRef();=09 _cu.GetCfileGenerator()->AtFunction( *_pSC, _iBrands, _theGeste ); break; # endif C_FILE_GENERATOR default: delete _branding; break; } TyFloat const& _tyFloat( *(TyFloat const*)_ty ); Fcn _rslt; if ( _tyFloat.GetnBits() <=3D TyFloat::_IEEEdouble_ || ConstFP::LongDoubleIs128Bits() ) { try { _rslt =3D Fcn( _ty, _pLlVm->JIT(), _nmFcn.str() ); } catch ( Message& _msg ) { _rslt =3D LowerPrecision( _tyFloat, _msg ); } } return _rslt; } } ------=_NextPart_000_0046_01D7507B.95E6A840 Content-Type: text/plain; name="f2.cpp" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="f2.cpp" namespace PT { ConstFP::Fcn ConstFP::PrecisionsOfOneFcn:: CreateFcn( TyAcc const& _ty ) const { CompilationUnit& _cu ( G->CU() ); TpSgmtCntnr _pSC ( new SgmtCntnrSC ); IObj _iDolRootScope ( G->GetHierarchy().DolRootScope() ); ILexObj _iLexDolRootScope( _iDolRootScope->GetLexScope() = ); typedef TypeList::Result TMods; std::vector _myArgs( nArgs() ); VariableSymbol _arg( TMods(), _ty ); for ( int _i( 0 ); _i < nArgs(); ++_i ) { std::stringstream _nmArg; _nmArg << "_arg" << _i; ITracks _iArg ( = _iDolRootScope.TrackFactory(_nmArg.str(),_arg,(*_pSC),_cu= ) ); _myArgs[ _i ] =3D _iArg; } std::stringstream _nmFcn; _nmFcn << "!" << ECall::DPI(myDpiId).Id(); switch ( myDpiId ) { case ECall::DPI::_pow_: _nmFcn << "Wrapr"; default: break; } _nmFcn << R()->GetNextDLLid(); IT::FcnDclHlpr _theFunction( (*_pSC), _ty, _nmFcn, = IT::TFcn::_dllExport_ ); for ( int _i( 0 ); _i < nArgs(); ++_i ) _theFunction << IT::IAcc( Expr( _myArgs[ _i ], NuVloc() ) ); IT::List _body; switch ( myDpiId ) { case ECall::DPI::_pow_: { IT::IAcc _one ( R()->c1.CastTo( _ty ) ); IT::IAcc _zero( R()->c0.CastTo( _ty ) ); IT::IAcc _condBase ( _theFunction.Arg(0) .EqEq( IT::FlagsOfIKind(), _zero ) ); IT::IAcc _condExp ( _theFunction.Arg(1) .LT( IT::FlagsOfIKind(), _zero ) ); // Specialize to capture `0 ** 0` and return 1. IT::IfHlpr _testSpcl ( _cu, _condBase .AndAnd (IT::FlagsOfIKind(), _condExp), IT::List() ); _testSpcl.True() << _one.Return(); _body << _testSpcl; break; } default: break; } IT::List _itActualList; for ( int _i( 0 ); _i < nArgs(); ++_i ) _itActualList << IT::IAcc( Expr( _myArgs[ _i ], NuVloc() ) = ).FcnArg(); IT::IAcc _theLibmCall( _itActualList.Head() .CallDpi( _ty, DpiProto(), myDpiId, IT::FlagsOfIKind() ) ); _body << _theLibmCall.Return(); _theFunction << _body.Head(); typedef SgmtCntnr::IBrndToSmblsWthLval IBrndToSmblsWthLval; typedef SgmtCntnr::BtoSwLkey BtoSwLkey; TpSignature _noSig ( new Signature ); TBranding* _branding ( new TBranding ); TIBranding _iBranding ( _branding->Insert( _iLexDolRootScope,Brands() ).first ); TpBrand _pBrand ( new Brand( _iBranding ) ); RefPtr_oneBrand( new Brands( _noSig, _pBrand ) ); IBrands _iBrands = (IPair((*_oneBrand).begin(),true)); IBrndToSmblsWthLval _iBtoWsl( (*_pSC)->Get( BtoSwLkey( _iBrands ) ) = ); OneGeste _theGeste ( R()->terminusStmt, _iLexDolRootScope, _iDolRootScope, DLLobject() = ); IT::TpLlVmGenerator _pLlVm ( _cu.LlVmGeneratorFactory( true/*isCommonToAllCUs*/ ) ); _theGeste.SetClosure( _theFunction ); _pSC->AllocLvalToGeste( _iBrands, _theGeste ); _pLlVm->AtFunction( (*_pSC), _iBrands, _iBtoWsl, _theGeste ); switch ( myDpiId ) { # ifdef C_FILE_GENERATOR case ECall::DPI::_pow_: _pSC->AddRef(); _pBrand->AddRef(); _oneBrand->AddRef(); _noSig->AddRef();=09 _cu.GetCfileGenerator()->AtFunction( *_pSC, _iBrands, _theGeste ); break; # endif C_FILE_GENERATOR default: delete _branding; break; } TyFloat const& _tyFloat( *(TyFloat const*)_ty ); Fcn _rslt; if ( _tyFloat.GetnBits() <=3D TyFloat::_IEEEdouble_ || ConstFP::LongDoubleIs128Bits() ) { try { _rslt =3D Fcn( _ty, _pLlVm->JIT(), _nmFcn.str() ); } catch ( Message& _msg ) { _rslt =3D LowerPrecision( _tyFloat, _msg ); } } return _rslt; } } ------=_NextPart_000_0046_01D7507B.95E6A840 Content-Type: application/octet-stream; name="TAGS" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="TAGS" =0C=0A= f1.cpp,213=0A= namespace PT=7F1,0=0A= CreateFcn(=7F5,66=0A= typedef TypeList::Result =7FResult=0112,369=0A= typedef SgmtCntnr::IBrndToSmblsWthLval IBrndToSmblsWthLval;=7F89,2190=0A= typedef SgmtCntnr::BtoSwLkey BtoSwLkey;=7F90,2255=0A= =0C=0A= f2.cpp,213=0A= namespace PT=7F1,0=0A= CreateFcn(=7F5,66=0A= typedef TypeList::Result =7FResult=0112,369=0A= typedef SgmtCntnr::IBrndToSmblsWthLval IBrndToSmblsWthLval;=7F89,2190=0A= typedef SgmtCntnr::BtoSwLkey BtoSwLkey;=7F90,2255=0A= ------=_NextPart_000_0046_01D7507B.95E6A840--