2
0
Эх сурвалжийг харах

--- Merging r39844 into '.':
U utils/fpcmkcfg/fpcmkcfg.pp
U utils/fpcmkcfg/fpccfg.inc
U utils/fpcmkcfg/fpc.cft
--- Recording mergeinfo for merge of r39844 into '.':
U .
--- Merging r39949 into '.':
U compiler/ncnv.pas
U compiler/avr/cgcpu.pas
U compiler/symconst.pas
U compiler/defutil.pas
U compiler/nadd.pas
U compiler/ncgrtti.pas
U compiler/llvm/llvmdef.pas
U compiler/llvm/hlcgllvm.pas
U compiler/dbgstabs.pas
U compiler/ppcgen/cgppc.pas
U compiler/ppcgen/ngppcadd.pas
U compiler/psystem.pas
U compiler/jvm/jvmdef.pas
U compiler/jvm/njvminl.pas
U compiler/jvm/njvmcnv.pas
U compiler/jvm/hlcgcpu.pas
U compiler/dbgdwarf.pas
U compiler/sparcgen/cgsparc.pas
U compiler/nmat.pas
U compiler/nset.pas
U compiler/symdef.pas
U compiler/ngtcon.pas
U compiler/scanner.pas
U compiler/i8086/n8086add.pas
U compiler/arm/narmadd.pas
U compiler/arm/cgcpu.pas
U compiler/ninl.pas
U compiler/ptype.pas
U compiler/nflw.pas
U compiler/defcmp.pas
U compiler/x86/cgx86.pas
U compiler/x86_64/cpupara.pas
U compiler/utils/ppuutils/ppudump.pp
U compiler/htypechk.pas
U compiler/pdecvar.pas
U compiler/ncal.pas
U compiler/m68k/cgcpu.pas
U rtl/inc/systemh.inc
--- Recording mergeinfo for merge of r39949 into '.':
G .
--- Merging r39950 into '.':
U rtl/inc/objcbase.pp
U rtl/inc/objcnf.inc
U rtl/inc/objc1.inc
U packages/cocoaint/src/CocoaAll.pas
U packages/cocoaint/src/quartzcore/CIPlugIn.inc
U packages/cocoaint/src/quartzcore/CAEmitterLayer.inc
U packages/cocoaint/src/quartzcore/CAAnimation.inc
U packages/cocoaint/src/quartzcore/CAOpenGLLayer.inc
U packages/cocoaint/src/quartzcore/CAMediaTiming.inc
U packages/cocoaint/src/quartzcore/CIImage.inc
U packages/cocoaint/src/quartzcore/CIFilterGenerator.inc
U packages/cocoaint/src/quartzcore/CAEmitterCell.inc
U packages/cocoaint/src/quartzcore/CALayer.inc
U packages/cocoaint/src/quartzcore/CIFilterShape.inc
U packages/cocoaint/src/quartzcore/CATextLayer.inc
U packages/cocoaint/src/quartzcore/CATransaction.inc
U packages/cocoaint/src/quartzcore/CIPlugInInterface.inc
U packages/cocoaint/src/quartzcore/CACIFilterAdditions.inc
U packages/cocoaint/src/quartzcore/CAReplicatorLayer.inc
U packages/cocoaint/src/foundation/NSURL.inc
U packages/cocoaint/src/foundation/NSDictionary.inc
U packages/cocoaint/src/foundation/NSObject.inc
U packages/cocoaint/src/foundation/NSSpellServer.inc
U packages/cocoaint/src/foundation/NSString.inc
U packages/cocoaint/src/foundation/NSCalendar.inc
U packages/cocoaint/src/foundation/NSURLRequest.inc
U packages/cocoaint/src/foundation/NSZone.inc
U packages/cocoaint/src/foundation/NSURLHandle.inc
U packages/cocoaint/src/foundation/NSPropertyList.inc
U packages/cocoaint/src/foundation/NSTimer.inc
U packages/cocoaint/src/foundation/NSIndexSet.inc
U packages/cocoaint/src/foundation/NSPathUtilities.inc
U packages/cocoaint/src/foundation/NSDistributedNotificationCenter.inc
U packages/cocoaint/src/foundation/NSSet.inc
U packages/cocoaint/src/foundation/NSAppleEventManager.inc
U packages/cocoaint/src/foundation/NSRunLoop.inc
U packages/cocoaint/src/foundation/NSScriptClassDescription.inc
U packages/cocoaint/src/foundation/NSOperation.inc
U packages/cocoaint/src/foundation/NSUndoManager.inc
U packages/cocoaint/src/foundation/NSMethodSignature.inc
U packages/cocoaint/src/foundation/NSArchiver.inc
U packages/cocoaint/src/foundation/NSUserDefaults.inc
U packages/cocoaint/src/foundation/NSXMLNode.inc
U packages/cocoaint/src/foundation/NSScriptCommandDescription.inc
U packages/cocoaint/src/foundation/NSScriptObjectSpecifiers.inc
U packages/cocoaint/src/foundation/NSInvocation.inc
U packages/cocoaint/src/foundation/NSXMLParser.inc
U packages/cocoaint/src/foundation/NSArray.inc
U packages/cocoaint/src/foundation/NSMetadata.inc
U packages/cocoaint/src/foundation/NSMapTable.inc
U packages/cocoaint/src/foundation/NSURLDownload.inc
U packages/cocoaint/src/foundation/NSHashTable.inc
U packages/cocoaint/src/foundation/NSXMLDTD.inc
U packages/cocoaint/src/foundation/NSURLCredential.inc
U packages/cocoaint/src/foundation/NSValueTransformer.inc
U packages/cocoaint/src/foundation/NSPredicate.inc
U packages/cocoaint/src/foundation/NSPortCoder.inc
U packages/cocoaint/src/foundation/NSXMLDTDNode.inc
U packages/cocoaint/src/foundation/NSAppleEventDescriptor.inc
U packages/cocoaint/src/foundation/NSScriptCommand.inc
U packages/cocoaint/src/foundation/NSCache.inc
U packages/cocoaint/src/foundation/NSKeyValueObserving.inc
U packages/cocoaint/src/foundation/NSDecimalNumber.inc
U packages/cocoaint/src/foundation/NSScriptSuiteRegistry.inc
U packages/cocoaint/src/foundation/NSKeyValueCoding.inc
U packages/cocoaint/src/foundation/NSBundle.inc
U packages/cocoaint/src/foundation/NSPointerFunctions.inc
U packages/cocoaint/src/foundation/NSXMLElement.inc
U packages/cocoaint/src/foundation/NSValue.inc
U packages/cocoaint/src/foundation/NSPort.inc
U packages/cocoaint/src/foundation/NSAppleScript.inc
U packages/cocoaint/src/foundation/NSSortDescriptor.inc
U packages/cocoaint/src/foundation/NSLock.inc
U packages/cocoaint/src/foundation/NSScanner.inc
U packages/cocoaint/src/foundation/NSStream.inc
U packages/cocoaint/src/foundation/NSGeometry.inc
U packages/cocoaint/src/foundation/NSScriptWhoseTests.inc
U packages/cocoaint/src/foundation/NSXMLDocument.inc
U packages/cocoaint/src/foundation/NSConnection.inc
U packages/cocoaint/src/foundation/NSDateFormatter.inc
U packages/cocoaint/src/foundation/NSTask.inc
U packages/cocoaint/src/foundation/NSFormatter.inc
U packages/cocoaint/src/foundation/NSThread.inc
U packages/cocoaint/src/foundation/NSCharacterSet.inc
U packages/cocoaint/src/foundation/NSData.inc
U packages/cocoaint/src/foundation/NSHTTPCookie.inc
U packages/cocoaint/src/foundation/NSFileManager.inc
U packages/cocoaint/src/foundation/NSPortNameServer.inc
U packages/cocoaint/src/foundation/NSNumberFormatter.inc
U packages/cocoaint/src/foundation/NSDate.inc
U packages/cocoaint/src/foundation/NSHost.inc
U packages/cocoaint/src/foundation/NSProxy.inc
U packages/cocoaint/src/foundation/NSURLConnection.inc
U packages/cocoaint/src/foundation/NSURLProtocol.inc
U packages/cocoaint/src/foundation/NSURLProtectionSpace.inc
U packages/cocoaint/src/foundation/NSKeyedArchiver.inc
U packages/cocoaint/src/foundation/NSPortMessage.inc
U packages/cocoaint/src/foundation/NSError.inc
U packages/cocoaint/src/foundation/NSNetServices.inc
U packages/cocoaint/src/foundation/NSTimeZone.inc
U packages/cocoaint/src/foundation/NSFileHandle.inc
U packages/cocoaint/src/foundation/NSDistributedLock.inc
U packages/cocoaint/src/foundation/NSCoder.inc
U packages/cocoaint/src/foundation/NSGarbageCollector.inc
U packages/cocoaint/src/InlineFunctions.inc
U packages/cocoaint/src/coredata/NSPersistentStore.inc
U packages/cocoaint/src/coredata/NSEntityDescription.inc
U packages/cocoaint/src/coredata/NSPersistentStoreCoordinator.inc
U packages/cocoaint/src/coredata/NSFetchRequestExpression.inc
U packages/cocoaint/src/coredata/NSManagedObject.inc
U packages/cocoaint/src/coredata/NSMigrationManager.inc
U packages/cocoaint/src/coredata/NSPropertyDescription.inc
U packages/cocoaint/src/coredata/NSManagedObjectContext.inc
U packages/cocoaint/src/coredata/NSAtomicStore.inc
U packages/cocoaint/src/coredata/NSManagedObjectID.inc
U packages/cocoaint/src/coredata/NSFetchRequest.inc
U packages/cocoaint/src/coredata/NSManagedObjectModel.inc
U packages/cocoaint/src/coredata/NSRelationshipDescription.inc
U packages/cocoaint/src/coredata/NSEntityMigrationPolicy.inc
U packages/cocoaint/src/webkit/DOMEventTarget.inc
U packages/cocoaint/src/webkit/DOMMouseEvent.inc
U packages/cocoaint/src/webkit/DOMHTMLStyleElement.inc
U packages/cocoaint/src/webkit/DOMWheelEvent.inc
U packages/cocoaint/src/webkit/WebUIDelegate.inc
U packages/cocoaint/src/webkit/WebView.inc
U packages/cocoaint/src/webkit/DOMAttr.inc
U packages/cocoaint/src/webkit/WebDocument.inc
U packages/cocoaint/src/webkit/DOMNode.inc
U packages/cocoaint/src/webkit/DOMStyleSheet.inc
U packages/cocoaint/src/webkit/DOMHTMLLinkElement.inc
U packages/cocoaint/src/webkit/DOMHTMLDocument.inc
U packages/cocoaint/src/webkit/DOMHTMLMenuElement.inc
U packages/cocoaint/src/webkit/DOMHTMLAreaElement.inc
U packages/cocoaint/src/webkit/DOMHTMLHRElement.inc
U packages/cocoaint/src/webkit/DOMEvent.inc
U packages/cocoaint/src/webkit/WebFrameView.inc
U packages/cocoaint/src/webkit/DOMXPathResult.inc
U packages/cocoaint/src/webkit/DOMHTMLInputElement.inc
U packages/cocoaint/src/webkit/DOMDocument.inc
U packages/cocoaint/src/webkit/DOMHTMLOptGroupElement.inc
U packages/cocoaint/src/webkit/DOMHTMLImageElement.inc
U packages/cocoaint/src/webkit/DOMMutationEvent.inc
U packages/cocoaint/src/webkit/WebEditingDelegate.inc
U packages/cocoaint/src/webkit/WebBackForwardList.inc
U packages/cocoaint/src/webkit/DOMHTMLTableCellElement.inc
U packages/cocoaint/src/webkit/WebScriptObject.inc
U packages/cocoaint/src/webkit/DOMHTMLFrameElement.inc
U packages/cocoaint/src/webkit/DOMHTMLOListElement.inc
U packages/cocoaint/src/webkit/DOMHTMLScriptElement.inc
U packages/cocoaint/src/webkit/DOMHTMLObjectElement.inc
U packages/cocoaint/src/webkit/DOMCSSStyleDeclaration.inc
U packages/cocoaint/src/webkit/DOMElement.inc
U packages/cocoaint/src/webkit/DOMRange.inc
U packages/cocoaint/src/webkit/DOMNodeIterator.inc
U packages/cocoaint/src/webkit/DOMKeyboardEvent.inc
U packages/cocoaint/src/webkit/DOMTreeWalker.inc
U packages/cocoaint/src/webkit/DOMHTMLOptionElement.inc
U packages/cocoaint/src/webkit/DOMHTMLSelectElement.inc
U packages/cocoaint/src/webkit/WebPlugin.inc
U packages/cocoaint/src/webkit/DOMHTMLUListElement.inc
U packages/cocoaint/src/webkit/WebHistory.inc
U packages/cocoaint/src/webkit/WebPreferences.inc
U packages/cocoaint/src/webkit/DOMHTMLDListElement.inc
U packages/cocoaint/src/webkit/DOMHTMLElement.inc
U packages/cocoaint/src/webkit/DOMImplementation.inc
U packages/cocoaint/src/webkit/DOMHTMLPreElement.inc
U packages/cocoaint/src/webkit/WebDataSource.inc
U packages/cocoaint/src/webkit/DOMHTMLDirectoryElement.inc
U packages/cocoaint/src/webkit/DOMOverflowEvent.inc
U packages/cocoaint/src/webkit/DOMProgressEvent.inc
U packages/cocoaint/src/webkit/DOMHTMLButtonElement.inc
U packages/cocoaint/src/webkit/DOMHTMLTextAreaElement.inc
U packages/cocoaint/src/webkit/DOMUIEvent.inc
U packages/cocoaint/src/Foundation.pas
U packages/cocoaint/src/appkit/NSPrinter.inc
U packages/cocoaint/src/appkit/NSColorPicking.inc
U packages/cocoaint/src/appkit/NSHelpManager.inc
U packages/cocoaint/src/appkit/NSRulerView.inc
U packages/cocoaint/src/appkit/NSCollectionView.inc
U packages/cocoaint/src/appkit/NSBox.inc
U packages/cocoaint/src/appkit/NSPathCell.inc
U packages/cocoaint/src/appkit/NSPathControl.inc
U packages/cocoaint/src/appkit/NSWorkspace.inc
U packages/cocoaint/src/appkit/NSMenuView.inc
U packages/cocoaint/src/appkit/NSUserInterfaceItemSearching.inc
U packages/cocoaint/src/appkit/NSWindow.inc
U packages/cocoaint/src/appkit/NSDictionaryController.inc
U packages/cocoaint/src/appkit/NSView.inc
U packages/cocoaint/src/appkit/NSButtonCell.inc
U packages/cocoaint/src/appkit/NSDocument.inc
U packages/cocoaint/src/appkit/NSAnimation.inc
U packages/cocoaint/src/appkit/NSSpeechSynthesizer.inc
U packages/cocoaint/src/appkit/NSStepperCell.inc
U packages/cocoaint/src/appkit/NSQuickDrawView.inc
U packages/cocoaint/src/appkit/NSSplitView.inc
U packages/cocoaint/src/appkit/NSScrollView.inc
U packages/cocoaint/src/appkit/NSImageRep.inc
U packages/cocoaint/src/appkit/NSRulerMarker.inc
U packages/cocoaint/src/appkit/NSPersistentDocument.inc
U packages/cocoaint/src/appkit/NSPanel.inc
U packages/cocoaint/src/appkit/NSSpeechRecognizer.inc
U packages/cocoaint/src/appkit/NSProgressIndicator.inc
U packages/cocoaint/src/appkit/NSColorWell.inc
U packages/cocoaint/src/appkit/NSAlert.inc
U packages/cocoaint/src/appkit/NSPrintInfo.inc
U packages/cocoaint/src/appkit/NSNib.inc
U packages/cocoaint/src/appkit/NSMovieView.inc
U packages/cocoaint/src/appkit/NSUserInterfaceValidation.inc
U packages/cocoaint/src/appkit/NSButton.inc
U packages/cocoaint/src/appkit/NSSavePanel.inc
U packages/cocoaint/src/appkit/NSColor.inc
U packages/cocoaint/src/appkit/NSViewController.inc
U packages/cocoaint/src/appkit/NSCell.inc
U packages/cocoaint/src/appkit/NSArrayController.inc
U packages/cocoaint/src/appkit/NSDocumentController.inc
U packages/cocoaint/src/appkit/NSTokenField.inc
U packages/cocoaint/src/appkit/NSTextField.inc
U packages/cocoaint/src/appkit/NSDockTile.inc
U packages/cocoaint/src/appkit/NSAttributedString.inc
U packages/cocoaint/src/appkit/NSSecureTextField.inc
U packages/cocoaint/src/appkit/NSFontManager.inc
U packages/cocoaint/src/appkit/NSMatrix.inc
U packages/cocoaint/src/appkit/NSNibLoading.inc
U packages/cocoaint/src/appkit/NSStatusBar.inc
U packages/cocoaint/src/appkit/NSComboBoxCell.inc
U packages/cocoaint/src/appkit/NSObjectController.inc
U packages/cocoaint/src/appkit/NSControl.inc
U packages/cocoaint/src/appkit/NSClipView.inc
U packages/cocoaint/src/appkit/NSSlider.inc
U packages/cocoaint/src/appkit/NSScroller.inc
U packages/cocoaint/src/appkit/NSAccessibility.inc
U packages/cocoaint/src/appkit/NSSound.inc
U packages/cocoaint/src/appkit/NSWindowScripting.inc
U packages/cocoaint/src/appkit/NSTextAttachment.inc
U packages/cocoaint/src/appkit/NSColorPanel.inc
U packages/cocoaint/src/appkit/NSTreeController.inc
U packages/cocoaint/src/appkit/NSTableColumn.inc
U packages/cocoaint/src/appkit/NSUserDefaultsController.inc
U packages/cocoaint/src/appkit/NSWindowController.inc
U packages/cocoaint/src/appkit/NSSegmentedControl.inc
U packages/cocoaint/src/appkit/NSRuleEditor.inc
U packages/cocoaint/src/appkit/NSMovie.inc
U packages/cocoaint/src/appkit/NSFileWrapper.inc
U packages/cocoaint/src/appkit/NSTabViewItem.inc
U packages/cocoaint/src/appkit/NSEvent.inc
U packages/cocoaint/src/appkit/NSTouch.inc
U packages/cocoaint/src/appkit/NSBrowserCell.inc
U packages/cocoaint/src/appkit/NSPasteboard.inc
U packages/cocoaint/src/appkit/NSTextContainer.inc
U packages/cocoaint/src/appkit/NSTextTable.inc
U packages/cocoaint/src/appkit/NSStatusItem.inc
U packages/cocoaint/src/appkit/NSPasteboardItem.inc
U packages/cocoaint/src/appkit/NSFormCell.inc
U packages/cocoaint/src/appkit/NSSpellChecker.inc
U packages/cocoaint/src/appkit/NSTreeNode.inc
U packages/cocoaint/src/appkit/NSLayoutManager.inc
U packages/cocoaint/src/appkit/NSTypesetter.inc
U packages/cocoaint/src/appkit/NSSearchFieldCell.inc
U packages/cocoaint/src/appkit/NSDatePickerCell.inc
U packages/cocoaint/src/appkit/NSImage.inc
U packages/cocoaint/src/appkit/NSBrowser.inc
U packages/cocoaint/src/appkit/NSTokenFieldCell.inc
U packages/cocoaint/src/appkit/NSInputServer.inc
U packages/cocoaint/src/appkit/NSTextFieldCell.inc
U packages/cocoaint/src/appkit/NSInputManager.inc
U packages/cocoaint/src/appkit/NSBezierPath.inc
U packages/cocoaint/src/appkit/NSPopUpButtonCell.inc
U packages/cocoaint/src/appkit/NSRunningApplication.inc
U packages/cocoaint/src/appkit/NSGraphicsContext.inc
U packages/cocoaint/src/appkit/NSFont.inc
U packages/cocoaint/src/appkit/NSTextStorage.inc
U packages/cocoaint/src/appkit/NSDatePicker.inc
U packages/cocoaint/src/appkit/NSKeyValueBinding.inc
U packages/cocoaint/src/appkit/NSCachedImageRep.inc
U packages/cocoaint/src/appkit/NSOpenPanel.inc
U packages/cocoaint/src/appkit/NSTableView.inc
U packages/cocoaint/src/appkit/NSStepper.inc
U packages/cocoaint/src/appkit/NSDragging.inc
U packages/cocoaint/src/appkit/NSSliderCell.inc
U packages/cocoaint/src/appkit/NSController.inc
U packages/cocoaint/src/appkit/NSMenuItemCell.inc
U packages/cocoaint/src/appkit/NSText.inc
U packages/cocoaint/src/appkit/NSDrawer.inc
U packages/cocoaint/src/appkit/NSApplicationScripting.inc
U packages/cocoaint/src/appkit/NSTableHeaderView.inc
U packages/cocoaint/src/appkit/NSPopUpButton.inc
U packages/cocoaint/src/appkit/NSToolbar.inc
U packages/cocoaint/src/appkit/NSTextInputClient.inc
U packages/cocoaint/src/appkit/NSMenu.inc
U packages/cocoaint/src/appkit/NSCursor.inc
U packages/cocoaint/src/appkit/NSImageView.inc
U packages/cocoaint/src/appkit/NSPrintOperation.inc
U packages/cocoaint/src/appkit/NSATSTypesetter.inc
U packages/cocoaint/src/appkit/NSToolbarItem.inc
U packages/cocoaint/src/appkit/NSMenuItem.inc
U packages/cocoaint/src/appkit/NSFontPanel.inc
U packages/cocoaint/src/appkit/NSBitmapImageRep.inc
U packages/cocoaint/src/appkit/NSTableHeaderCell.inc
U packages/cocoaint/src/appkit/NSGraphics.inc
U packages/cocoaint/src/appkit/NSTabView.inc
U packages/cocoaint/src/appkit/NSResponder.inc
U packages/cocoaint/src/appkit/NSApplication.inc
U packages/cocoaint/src/appkit/NSComboBox.inc
U packages/cocoaint/src/appkit/NSTextInputContext.inc
U packages/cocoaint/src/appkit/NSOutlineView.inc
U packages/cocoaint/src/appkit/NSColorList.inc
U packages/cocoaint/src/appkit/NSTextView.inc
--- Recording mergeinfo for merge of r39950 into '.':
G .
--- Merging r40008 into '.':
G compiler/ncal.pas
A tests/webtbs/tw34442.pp
--- Recording mergeinfo for merge of r40008 into '.':
G .
--- Merging r40009 into '.':
G compiler/defcmp.pas
G compiler/ncnv.pas
U compiler/pexpr.pas
A tests/webtbs/tw33875.pp
--- Recording mergeinfo for merge of r40009 into '.':
G .
--- Merging r40010 into '.':
A tests/webtbs/tw34055.pp
G compiler/ngtcon.pas
--- Recording mergeinfo for merge of r40010 into '.':
G .
--- Merging r40012 into '.':
G compiler/defcmp.pas
G compiler/htypechk.pas
A tests/webtbs/tw32179.pp
--- Recording mergeinfo for merge of r40012 into '.':
G .
--- Merging r40367 into '.':
U compiler/optcse.pas
--- Recording mergeinfo for merge of r40367 into '.':
G .
--- Merging r40373 into '.':
U compiler/hlcgobj.pas
--- Recording mergeinfo for merge of r40373 into '.':
G .
--- Merging r40374 into '.':
U compiler/ncgld.pas
--- Recording mergeinfo for merge of r40374 into '.':
G .
--- Merging r40375 into '.':
G compiler/hlcgobj.pas
--- Recording mergeinfo for merge of r40375 into '.':
G .
--- Merging r40384 into '.':
U compiler/psub.pas
--- Recording mergeinfo for merge of r40384 into '.':
G .
--- Merging r40386 into '.':
U compiler/ngenutil.pas
U compiler/jvm/njvmutil.pas
--- Recording mergeinfo for merge of r40386 into '.':
G .
--- Merging r40442 into '.':
U compiler/ppu.pas
G compiler/symdef.pas
--- Recording mergeinfo for merge of r40442 into '.':
G .
--- Merging r40443 into '.':
U compiler/systems/i_bsd.pas
U compiler/systems/i_linux.pas
U compiler/systems/i_sunos.pas
U compiler/systems/i_embed.pas
U compiler/systems/i_android.pas
U compiler/systems/i_aros.pas
--- Recording mergeinfo for merge of r40443 into '.':
G .
--- Merging r40499 into '.':
G compiler/llvm/hlcgllvm.pas
--- Recording mergeinfo for merge of r40499 into '.':
G .
--- Merging r40630 into '.':
U compiler/ncgnstld.pas
G compiler/ninl.pas
--- Recording mergeinfo for merge of r40630 into '.':
G .
--- Merging r40633 into '.':
G compiler/hlcgobj.pas
U compiler/hlcg2ll.pas
--- Recording mergeinfo for merge of r40633 into '.':
G .
--- Merging r40634 into '.':
U compiler/ncgcnv.pas
G compiler/symdef.pas
U compiler/llvm/nllvmcnv.pas
U compiler/llvm/nllvmld.pas
U compiler/i386/symcpu.pas
G compiler/ncnv.pas
U compiler/symcreat.pas
U compiler/jvm/pjvm.pas
U compiler/arm/symcpu.pas
U compiler/powerpc/symcpu.pas
U compiler/m68k/symcpu.pas
U compiler/x86_64/symcpu.pas
U compiler/blockutl.pas
U compiler/i8086/symcpu.pas
--- Recording mergeinfo for merge of r40634 into '.':
G .
--- Merging r40645 into '.':
U compiler/nobj.pas
--- Recording mergeinfo for merge of r40645 into '.':
G .
--- Merging r40648 into '.':
G compiler/symcreat.pas
--- Recording mergeinfo for merge of r40648 into '.':
G .
--- Merging r40683 into '.':
A tests/tbf/tb0267.pp
U tests/webtbs/tw27349.pp
A tests/tbs/tb0654.pp
G compiler/nobj.pas
--- Recording mergeinfo for merge of r40683 into '.':
G .
--- Recording mergeinfo for merge of r40729 into '.':
G .
--- Merging r40771 into '.':
U rtl/darwin/x86/x86hnd.inc
--- Recording mergeinfo for merge of r40771 into '.':
G .
--- Merging r40772 into '.':
G compiler/nflw.pas
U compiler/pmodules.pas
U compiler/pdecsub.pas
U compiler/pparautl.pas
G compiler/ptype.pas
U compiler/pdecobj.pas
U compiler/pgenutil.pas
U compiler/pdecl.pas
U compiler/jvm/symcpu.pas
G compiler/pdecvar.pas
--- Recording mergeinfo for merge of r40772 into '.':
G .
--- Merging r40773 into '.':
G compiler/pdecsub.pas
U compiler/ncgnstmm.pas
G compiler/symcreat.pas
G compiler/pdecl.pas
G compiler/pmodules.pas
G compiler/pdecobj.pas
G compiler/psub.pas
G compiler/symdef.pas
G compiler/pparautl.pas
A compiler/procdefutil.pas
G compiler/pgenutil.pas
G compiler/jvm/symcpu.pas
G compiler/jvm/jvmdef.pas
G compiler/jvm/pjvm.pas
G compiler/nflw.pas
U compiler/symutil.pas
G compiler/pdecvar.pas
G compiler/ptype.pas
U compiler/i386/n386flw.pas
G compiler/ncgnstld.pas
U compiler/x86_64/nx64flw.pas
U compiler/procinfo.pas
--- Recording mergeinfo for merge of r40773 into '.':
G .
--- Merging r40777 into '.':
G compiler/ppu.pas
U compiler/optconstprop.pas
U compiler/pstatmnt.pas
U compiler/optutils.pas
U compiler/pass_2.pas
U compiler/node.pas
U compiler/ncgmem.pas
U compiler/nmem.pas
G compiler/psystem.pas
--- Recording mergeinfo for merge of r40777 into '.':
G .
--- Merging r40778 into '.':
G rtl/darwin/x86/x86hnd.inc
--- Recording mergeinfo for merge of r40778 into '.':
G .
--- Merging r40785 into '.':
U compiler/msgidx.inc
G compiler/pexpr.pas
U compiler/msg/errore.msg
U compiler/msgtxt.inc
A tests/webtbf/tw34821.pp
--- Recording mergeinfo for merge of r40785 into '.':
G .
--- Merging r40810 into '.':
G compiler/hlcg2ll.pas
--- Recording mergeinfo for merge of r40810 into '.':
G .
--- Merging r41161 into '.':
G compiler/symdef.pas
A tests/webtbs/tw34971.pp
--- Recording mergeinfo for merge of r41161 into '.':
G .
--- Merging r41164 into '.':
U tests/test/tinterlocked64mt.pp
U tests/test/tinterlockedmt.pp
--- Recording mergeinfo for merge of r41164 into '.':
G .
--- Merging r41165 into '.':
U tests/test/units/sysutils/trwsync.pp
--- Recording mergeinfo for merge of r41165 into '.':
G .
--- Merging r41166 into '.':
U rtl/objpas/sysutils/sysuthrd.inc
--- Recording mergeinfo for merge of r41166 into '.':
G .

git-svn-id: branches/fixes_3_2@41249 -

Jonas Maebe 6 жил өмнө
parent
commit
b40797e7f8

+ 8 - 0
.gitattributes

@@ -10952,6 +10952,7 @@ tests/tbf/tb0262.pp svneol=native#text/pascal
 tests/tbf/tb0263.pp svneol=native#text/pascal
 tests/tbf/tb0264.pp svneol=native#text/pascal
 tests/tbf/tb0265.pp svneol=native#text/pascal
+tests/tbf/tb0267.pp svneol=native#text/plain
 tests/tbf/tb0588.pp svneol=native#text/pascal
 tests/tbf/ub0115.pp svneol=native#text/plain
 tests/tbf/ub0149.pp svneol=native#text/plain
@@ -11610,6 +11611,7 @@ tests/tbs/tb0648.pp svneol=native#text/pascal
 tests/tbs/tb0649.pp -text svneol=native#text/pascal
 tests/tbs/tb0650.pp svneol=native#text/pascal
 tests/tbs/tb0651.pp svneol=native#text/pascal
+tests/tbs/tb0654.pp svneol=native#text/plain
 tests/tbs/tb205.pp svneol=native#text/plain
 tests/tbs/tb610.pp svneol=native#text/pascal
 tests/tbs/tb613.pp svneol=native#text/plain
@@ -14581,6 +14583,7 @@ tests/webtbf/tw3450.pp svneol=native#text/plain
 tests/webtbf/tw3473.pp svneol=native#text/plain
 tests/webtbf/tw3480.pp svneol=native#text/plain
 tests/webtbf/tw3480a.pp svneol=native#text/plain
+tests/webtbf/tw34821.pp svneol=native#text/plain
 tests/webtbf/tw3488.pp svneol=native#text/plain
 tests/webtbf/tw3495.pp svneol=native#text/plain
 tests/webtbf/tw3502.pp svneol=native#text/plain
@@ -16176,6 +16179,7 @@ tests/webtbs/tw32150.pp svneol=native#text/pascal
 tests/webtbs/tw3216.pp svneol=native#text/plain
 tests/webtbs/tw32160.pp svneol=native#text/plain
 tests/webtbs/tw3217.pp svneol=native#text/plain
+tests/webtbs/tw32179.pp svneol=native#text/plain
 tests/webtbs/tw3222.pp svneol=native#text/plain
 tests/webtbs/tw3226.pp svneol=native#text/plain
 tests/webtbs/tw3227.pp svneol=native#text/plain
@@ -16255,9 +16259,11 @@ tests/webtbs/tw33818.pp svneol=native#text/pascal
 tests/webtbs/tw33839a.pp -text svneol=native#text/pascal
 tests/webtbs/tw33839b.pp -text svneol=native#text/pascal
 tests/webtbs/tw33840.pp -text svneol=native#text/pascal
+tests/webtbs/tw33875.pp svneol=native#text/plain
 tests/webtbs/tw33898.pp -text svneol=native#text/pascal
 tests/webtbs/tw3402.pp svneol=native#text/plain
 tests/webtbs/tw34021.pp -text svneol=native#text/pascal
+tests/webtbs/tw34055.pp svneol=native#text/plain
 tests/webtbs/tw3411.pp svneol=native#text/plain
 tests/webtbs/tw34124.pp svneol=native#text/pascal
 tests/webtbs/tw3418.pp svneol=native#text/plain
@@ -16272,6 +16278,7 @@ tests/webtbs/tw3441.pp svneol=native#text/plain
 tests/webtbs/tw3443.pp svneol=native#text/plain
 tests/webtbs/tw34438.pp svneol=native#text/pascal
 tests/webtbs/tw3444.pp svneol=native#text/plain
+tests/webtbs/tw34442.pp svneol=native#text/plain
 tests/webtbs/tw3456.pp svneol=native#text/plain
 tests/webtbs/tw3457.pp svneol=native#text/plain
 tests/webtbs/tw3460.pp svneol=native#text/plain
@@ -16287,6 +16294,7 @@ tests/webtbs/tw3490.pp svneol=native#text/plain
 tests/webtbs/tw3491.pp svneol=native#text/plain
 tests/webtbs/tw3492.pp svneol=native#text/plain
 tests/webtbs/tw3494.pp svneol=native#text/plain
+tests/webtbs/tw34971.pp svneol=native#text/plain
 tests/webtbs/tw3499.pp svneol=native#text/plain
 tests/webtbs/tw3504.pp svneol=native#text/plain
 tests/webtbs/tw3506.pp svneol=native#text/plain

+ 34 - 0
tests/tbf/tb0267.pp

@@ -0,0 +1,34 @@
+{ %fail }
+
+{$mode objfpc}{$h+}
+{$interfaces corba}
+
+type
+  tintf = interface
+    procedure test(l: longint);
+    procedure test(s: string);
+  end;
+
+  tp = class
+    procedure test(l: longint); virtual;
+    procedure test(s: string); virtual;
+  end;
+
+  tc = class(tp, tintf)
+    procedure test(l: longint); override;
+  end;
+
+procedure tp.test(l: longint);
+  begin
+  end;
+
+procedure tp.test(s: string);
+  begin
+  end;
+
+procedure tc.test(l: longint);
+  begin
+  end;
+
+begin
+end.

+ 34 - 0
tests/tbs/tb0654.pp

@@ -0,0 +1,34 @@
+{ %norun }
+
+{$mode objfpc}{$h+}
+{$interfaces corba}
+
+type
+  tintf = interface
+    procedure test(l: longint);
+    procedure test(s: string);
+  end;
+
+  tp = class
+    procedure test(l: longint); overload; virtual;
+    procedure test(s: string); overload; virtual;
+  end;
+
+  tc = class(tp, tintf)
+    procedure test(l: longint); override;
+  end;
+
+procedure tp.test(l: longint);
+  begin
+  end;
+
+procedure tp.test(s: string);
+  begin
+  end;
+
+procedure tc.test(l: longint);
+  begin
+  end;
+
+begin
+end.

+ 6 - 0
tests/test/tinterlocked64mt.pp

@@ -208,6 +208,8 @@ begin
       end;
   end;
 
+  { ensure the writes to Counter and Counter2 are ordered vs the writes to FinishedCount }
+  WriteBarrier;
   InterLockedIncrement64(FinishedCount);
 end;
 
@@ -293,6 +295,10 @@ begin
   if t = 0 then
     t:=1/MSecsPerDay;
 
+  { ensure the read from FinishedCount above is ordered relative to the reads from
+    Counter and Counter2 (counterpart to WriteBarrier in the thread function) }
+  ReadBarrier();
+
   CheckResult(Counter, 0, 20, 'Counter error:');
 
   CheckResult(Counter2, (LastCompareVal - 2)*CmpCount, 21, 'Counter2 error:');

+ 7 - 0
tests/test/tinterlockedmt.pp

@@ -204,6 +204,9 @@ begin
       end;
   end;
 
+  { ensure the writes to Counter and Counter2 are ordered vs the writes to FinishedCount }
+  WriteBarrier;
+
   InterLockedIncrement(FinishedCount);
 end;
 
@@ -288,6 +291,10 @@ begin
   if t = 0 then
     t:=1/MSecsPerDay;
 
+  { ensure the read from FinishedCount above is ordered relative to the reads from
+    Counter and Counter2 (counterpart to WriteBarrier in the thread function) }
+  ReadBarrier();
+
   CheckResult(Counter, 0, 20, 'Counter error:');
 
   CheckResult(Counter2, (LastCompareVal - 2)*CmpCount, 21, 'Counter2 error:');

+ 1 - 46
tests/test/units/sysutils/trwsync.pp

@@ -443,52 +443,7 @@ begin
   w3.free;
   w4.free;
 
-  { now try some mixed readers/writers }
-  gcount:=0;
-  r1:=treadcounter.create;
-  r2:=treadcounter.create;
-  r3:=treadcounter.create;
-  r4:=treadcounter.create;
-  r5:=treadcounter.create;
-  r6:=treadcounter.create;
-  w1:=twritecounter.create;
-  w2:=twritecounter.create;
-  
-  r1.resume;
-  r2.resume;
-  r3.resume;
-  r4.resume;
-  r5.resume;
-  r6.resume;
-  w1.resume;
-  w2.resume;
-  
-  r1.waitfor;
-  r2.waitfor;
-  r3.waitfor;
-  r4.waitfor;
-  r5.waitfor;
-  r6.waitfor;
-  w1.waitfor;
-  w2.waitfor;
-  
-  { updating via the readcount must have caused data races }
-  if (gcount>=r1.localcount+r2.localcount+r3.localcount+r4.localcount+r5.localcount+r6.localcount+w1.localcount+w2.localcount) then
-    begin
-      writeln('error 3');
-      halt(3);
-    end;
-
-  r1.free;
-  r2.free;
-  r3.free;
-  r4.free;
-  r5.free;
-  r6.free;
-  w1.free;
-  w2.free;
-
-  { mixed readers and writers without proper synchronisation }
+  { mixed readers and writers with proper synchronisation }
   gcount:=0;
   rw1:=treadwritecounter.create(true);
   rw2:=treadwritecounter.create(false);

+ 29 - 0
tests/webtbf/tw34821.pp

@@ -0,0 +1,29 @@
+{ %fail }
+
+ unit tw34821;
+
+{$mode objfpc}{$H+}
+
+interface
+
+type TStrBuilder = class
+  procedure append(); inline;
+end;
+
+type TTest = object
+  procedure xyz;
+end;
+
+implementation
+
+procedure TStrBuilder.append();
+begin
+  TTest.xyz;
+end;
+
+procedure TTest.xyz;
+begin
+end;
+
+end.
+

+ 4 - 4
tests/webtbs/tw27349.pp

@@ -13,7 +13,7 @@ type
    type
 
     tmyintf = class(TInterfacedObject, iinterface)
-     function _AddRef : longint; stdcall;
+     function _AddRef : longint; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
     end;
 
   end;
@@ -23,17 +23,17 @@ type
    type
 
     tmyintf = class(TInterfacedObject, iinterface)
-     function _AddRef : longint; stdcall;
+     function _AddRef : longint; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
     end;
 
   end;
 
-function C.tmyintf._AddRef: longint; stdcall;
+function C.tmyintf._AddRef: longint; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
 begin
  result := inherited _AddRef; // OK
 end;
 
-function R.tmyintf._AddRef: longint; stdcall;
+function R.tmyintf._AddRef: longint; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
 begin
  result := inherited _AddRef; // FAIL
 end;

+ 26 - 0
tests/webtbs/tw32179.pp

@@ -0,0 +1,26 @@
+{$mode delphi}
+
+type
+  TGuidHelper = record helper for TGUID
+    Class Function Create(const Data): TGUID; overload; static; inline;
+    Class Function Create(const S: string): TGUID; overload; static;
+  end;
+
+class function TGuidHelper.Create(const Data): TGUID;
+begin
+  halt(1);
+end;
+
+class function TGuidHelper.Create(const S: string): TGUID;
+begin
+  writeln('B');
+end;
+
+var
+  c: PChar;
+  g: TGUID;
+begin
+  g.Create(utf8string(c)); // will print 'A'
+  g.Create(unicodestring(c)); // will print 'A'
+  g.Create(shortstring(c)); // will print 'A'
+end.

+ 20 - 0
tests/webtbs/tw33875.pp

@@ -0,0 +1,20 @@
+{$MODE DELPHI}
+
+program CharOverload;
+
+uses
+  SysUtils;
+
+procedure Foo(const aArg: UnicodeString); overload;
+begin
+  WriteLn('WideString: ', aArg);
+end;
+
+procedure Foo(c: WideChar); overload;
+begin
+  WriteLn('Char: ', c);
+end;
+
+begin
+  Foo('abc');
+end.

+ 24 - 0
tests/webtbs/tw34055.pp

@@ -0,0 +1,24 @@
+{$mode objfpc}
+
+ type
+  TDOS_FIELDNAMES = (
+                      Dos_Signature, // ord = 0
+                      Dos_OffsetToNewExecutable // ord = 1
+                    );
+
+
+
+const
+  DosFieldLabelsB : array[TDOS_FIELDNAMES]
+                        of pwidechar =
+  (
+    'DOS signature',
+    'offset to new executable'
+  );
+
+  d : ppwidechar = @DosFieldLabelsB[Dos_OffsetToNewExecutable];
+
+begin
+  if d<>@DosFieldLabelsB[Dos_OffsetToNewExecutable] then
+    halt(1);
+end.

+ 333 - 0
tests/webtbs/tw34442.pp

@@ -0,0 +1,333 @@
+{ %norun }
+
+{$mode delphi}
+
+uses
+  sysutils;
+
+{$define use_inline }
+
+function IndyMin(const AValueOne, AValueTwo: Int32): Int32;
+{$IFDEF USE_INLINE}inline;{$ENDIF} overload;
+begin
+  if AValueOne > AValueTwo then begin
+    Result := AValueTwo;
+  end else begin
+    Result := AValueOne;
+  end;
+end;
+
+function IndyMin(const AValueOne, AValueTwo: Int64): Int64;
+{$IFDEF USE_INLINE}inline;{$ENDIF} overload;
+begin
+  if AValueOne > AValueTwo then begin
+    Result := AValueTwo;
+  end else begin
+    Result := AValueOne;
+  end;
+end;
+
+function IndyMin(const AValueOne, AValueTwo: UInt16): UInt16;
+{$IFDEF USE_INLINE}inline;{$ENDIF} overload;
+begin
+  if AValueOne > AValueTwo then begin
+    Result := AValueTwo;
+  end else begin
+    Result := AValueOne;
+  end;
+end;
+
+
+function IndyMax(const AValueOne, AValueTwo: Int64): Int64;
+{$IFDEF USE_INLINE}inline;{$ENDIF} overload;
+begin
+  if AValueOne < AValueTwo then begin
+    Result := AValueTwo;
+  end else begin
+    Result := AValueOne;
+  end;
+end;
+
+function IndyMax(const AValueOne, AValueTwo: Int32): Int32;
+{$IFDEF USE_INLINE}inline;{$ENDIF} overload;
+begin
+  if AValueOne < AValueTwo then begin
+    Result := AValueTwo;
+  end else begin
+    Result := AValueOne;
+  end;
+end;
+
+function IndyMax(const AValueOne, AValueTwo: UInt16): UInt16;
+{$IFDEF USE_INLINE}inline;{$ENDIF} overload;
+begin
+  if AValueOne < AValueTwo then begin
+    Result := AValueTwo;
+  end else begin
+    Result := AValueOne;
+  end;
+end;
+
+
+
+function IndyLength(const ABuffer: String; const ALength: Integer = -1; const AIndex: Integer = 1): Integer;
+{$IFDEF USE_INLINE}inline;{$ENDIF}
+var
+  LAvailable: Integer;
+begin
+  Assert(AIndex >= 1);
+  LAvailable := IndyMax(Length(ABuffer)-AIndex+1, 0);
+  if ALength < 0 then begin
+    Result := LAvailable;
+  end else begin
+    Result := IndyMin(LAvailable, ALength);
+  end;
+end;
+
+
+function CharEquals(const AString: string; const ACharPos: Integer; const AValue: Char): Boolean;
+{$IFDEF USE_INLINE}inline;{$ENDIF}
+begin
+  if ACharPos < 1 then begin
+    raise Exception.Create('Invalid ACharPos');{ do not localize }
+  end;
+  Result := ACharPos <= Length(AString);
+  if Result then begin
+    Result := AString[ACharPos] = AValue;
+  end;
+end;
+
+
+{$HINTS OFF}
+function IsNumeric(const AString: string): Boolean; overload;
+var
+  LCode: Integer;
+  LVoid: Int64;
+begin
+  Val(AString, LVoid, LCode);
+  Result := LCode = 0;
+end;
+{$HINTS ON}
+
+function IsNumeric(const AString: string; const ALength: Integer; const AIndex: Integer = 1): Boolean; overload;
+var
+  I: Integer;
+  LLen: Integer;
+begin
+  Result := False;
+  LLen := IndyLength(AString, ALength, AIndex);
+  if LLen > 0 then begin
+    for I := 0 to LLen-1 do begin
+      if not IsNumeric(AString[AIndex+i]) then begin
+        Exit;
+      end;
+    end;
+    Result := True;
+  end;
+end;
+
+function IsNumeric(const AChar: Char): Boolean; overload;
+{$IFDEF USE_INLINE}inline;{$ENDIF}
+begin
+  // TODO: under XE3.5+, use TCharHelper.IsDigit() instead
+  // TODO: under D2009+, use TCharacter.IsDigit() instead
+
+  // Do not use IsCharAlpha or IsCharAlphaNumeric - they are Win32 routines
+  Result := (AChar >= '0') and (AChar <= '9'); {Do not Localize}
+end;
+
+
+function StripNo(const AData : String): String; inline;
+var
+  i : Integer;
+  LPos : Integer;
+begin
+  LPos := 1;
+  for i := 1 to Length(AData) do begin
+    LPos := i;
+    if (not IsNumeric(AData[i])) and (not CharEquals(AData, i, ',')) then begin
+      Break;
+    end;
+  end;
+  Result := Copy(AData, LPos, Length(AData));
+end;
+
+function TextStartsWith(const S, SubS: string): Boolean;
+var
+  LLen: Integer;
+  {$IFDEF WINDOWS}
+    {$IFDEF COMPARE_STRING_MISMATCH}
+  LS, LSubS: {$IFDEF WINCE}TIdUnicodeString{$ELSE}TIdPlatformString{$ENDIF};
+  P1, P2: {$IFDEF WINCE}PIdWideChar{$ELSE}PIdPlatformChar{$ENDIF};
+    {$ENDIF}
+  {$ENDIF}
+begin
+  LLen := Length(SubS);
+  Result := LLen <= Length(S);
+  if Result then
+  begin
+    {$IFDEF DOTNET}
+    Result := System.String.Compare(S, 0, SubS, 0, LLen, True) = 0;
+    {$ELSE}
+      {$IFDEF WINDOWS}
+        {$IFDEF COMPARE_STRING_MISMATCH}
+    // explicit convert to Ansi/Unicode
+    LS := {$IFDEF WINCE}TIdUnicodeString{$ELSE}TIdPlatformString{$ENDIF}(S);
+    LSubS := {$IFDEF WINCE}TIdUnicodeString{$ELSE}TIdPlatformString{$ENDIF}(SubS);
+    LLen := Length(LSubS);
+    Result := LLen <= Length(LS);
+    if Result then begin
+      P1 := {$IFDEF WINCE}PIdWideChar{$ELSE}PIdPlatformChar{$ENDIF}(LS);
+      P2 := {$IFDEF WINCE}PIdWideChar{$ELSE}PIdPlatformChar{$ENDIF}(LSubS);
+      Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, P1, LLen, P2, LLen) = 2;
+    end;
+        {$ELSE}
+    Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, PChar(S), LLen, PChar(SubS), LLen) = 2;
+        {$ENDIF}
+      {$ELSE}
+    Result := AnsiCompareText(Copy(S, 1, LLen), SubS) = 0;
+      {$ENDIF}
+    {$ENDIF}
+  end;
+end;
+
+procedure IdDelete(var s: string; AOffset, ACount: Integer);
+{$IFDEF USE_INLINE}inline;{$ENDIF}
+begin
+  Delete(s, AOffset, ACount);
+end;
+
+function TextEndsWith(const S, SubS: string): Boolean;
+var
+  LLen: Integer;
+  {$IFDEF WINDOWS}
+    {$IFDEF COMPARE_STRING_MISMATCH}
+  LS, LSubS: {$IFDEF WINCE}TIdUnicodeString{$ELSE}TIdPlatformString{$ENDIF};
+  P1, P2: {$IFDEF WINCE}PIdWideChar{$ELSE}PIdPlatformChar{$ENDIF};
+    {$ELSE}
+  P: PChar;
+    {$ENDIF}
+  {$ENDIF}
+begin
+  LLen := Length(SubS);
+  Result := LLen <= Length(S);
+  if Result then
+  begin
+    {$IFDEF DOTNET}
+    Result := System.String.Compare(S, Length(S)-LLen, SubS, 0, LLen, True) = 0;
+    {$ELSE}
+      {$IFDEF WINDOWS}
+        {$IFDEF COMPARE_STRING_MISMATCH}
+    // explicit convert to Ansi/Unicode
+    LS := {$IFDEF WINCE}TIdUnicodeString{$ELSE}TIdPlatformString{$ENDIF}(S);
+    LSubS := {$IFDEF WINCE}TIdUnicodeString{$ELSE}TIdPlatformString{$ENDIF}(SubS);
+    LLen := Length(LSubS);
+    Result := LLen <= Length(S);
+    if Result then begin
+      P1 := {$IFDEF WINCE}PIdWideChar{$ELSE}PIdPlatformChar{$ENDIF}(LS);
+      P2 := {$IFDEF WINCE}PIdWideChar{$ELSE}PIdPlatformChar{$ENDIF}(LSubS);
+      Inc(P1, Length(LS)-LLen);
+      Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, P1, LLen, P2, LLen) = 2;
+    end;
+        {$ELSE}
+    P := PChar(S);
+    Inc(P, Length(S)-LLen);
+    Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, P, LLen, PChar(SubS), LLen) = 2;
+        {$ENDIF}
+      {$ELSE}
+    Result := AnsiCompareText(Copy(S, Length(S)-LLen+1, LLen), SubS) = 0;
+      {$ENDIF}
+    {$ENDIF}
+  end;
+end;
+
+const
+  IdFetchDelimDefault = ' ';    {Do not Localize}
+  IdFetchDeleteDefault = True;
+  IdFetchCaseSensitiveDefault = True;
+
+function FetchCaseInsensitive(var AInput: string; const ADelim: string;
+  const ADelete: Boolean): string;
+{$IFDEF USE_INLINE}inline;{$ENDIF}
+var
+  LPos: Integer;
+begin
+  if ADelim = #0 then begin
+    // AnsiPos does not work with #0
+    LPos := Pos(ADelim, AInput);
+  end else begin
+    //? may be AnsiUpperCase?
+    LPos := Pos(UpperCase(ADelim), UpperCase(AInput));
+  end;
+  if LPos = 0 then begin
+    Result := AInput;
+    if ADelete then begin
+      AInput := '';    {Do not Localize}
+    end;
+  end else begin
+    Result := Copy(AInput, 1, LPos - 1);
+    if ADelete then begin
+      //faster than Delete(AInput, 1, LPos + Length(ADelim) - 1); because the
+      //remaining part is larger than the deleted
+      AInput := Copy(AInput, LPos + Length(ADelim), MaxInt);
+    end;
+  end;
+end;
+
+function Fetch(var AInput: string; const ADelim: string = IdFetchDelimDefault;
+  const ADelete: Boolean = IdFetchDeleteDefault;
+	  const ACaseSensitive: Boolean = IdFetchCaseSensitiveDefault): string;
+{$IFDEF USE_INLINE}inline;{$ENDIF}
+var
+  LPos: Integer;
+begin
+  if ACaseSensitive then begin
+    if ADelim = #0 then begin
+      // AnsiPos does not work with #0
+      LPos := Pos(ADelim, AInput);
+    end else begin
+      LPos := Pos(ADelim, AInput);
+    end;
+    if LPos = 0 then begin
+      Result := AInput;
+      if ADelete then begin
+        AInput := '';    {Do not Localize}
+      end;
+    end
+    else begin
+      Result := Copy(AInput, 1, LPos - 1);
+      if ADelete then begin
+        //slower Delete(AInput, 1, LPos + Length(ADelim) - 1); because the
+        //remaining part is larger than the deleted
+        AInput := Copy(AInput, LPos + Length(ADelim), MaxInt);
+      end;
+    end;
+  end else begin
+    Result := FetchCaseInsensitive(AInput, ADelim, ADelete);
+  end;
+end;
+
+function ExtractRecFormat(const ARecFM : String): String;
+  {$IFDEF USE_INLINE} inline; {$ENDIF}
+begin
+  Result := ARecFM;
+  if TextStartsWith(Result, '<') then begin
+    IdDelete(Result, 1, 1);
+  end;
+  if TextEndsWith(Result, '>') then begin
+    Result := Fetch(Result, '>');
+  end;
+end;
+
+
+procedure test;
+var
+  LTmp: string;
+  s: string;
+begin
+  LTmp:='ac';
+  s:=ExtractRecFormat(StripNo(LTmp));
+end;
+
+begin
+end.

+ 25 - 0
tests/webtbs/tw34971.pp

@@ -0,0 +1,25 @@
+type
+  t1 = -1..1;
+  t2 = -4..3;
+  t3 = -3..4;
+type
+  r1 = bitpacked record
+    f: t1;
+  end;
+
+  r2 = bitpacked record
+    f: t2;
+  end;
+
+  r3 = bitpacked record
+   f: t3;
+  end;
+
+begin
+  if bitsizeof(r1.f)<>2 then
+    halt(1);
+  if bitsizeof(r2.f)<>3 then
+    halt(2);
+  if bitsizeof(r3.f)<>4 then
+    halt(3);
+end.